2010-06-10 1 views
2

По какой-то причине мне нужно ввести свои целые значения в базу данных в виде строки, затем я хочу запустить запрос на них и сравнить эти целые числа как строки. Есть ли способ украсить целые числа (от 1 до 1 млрд. Долл. США в качестве примера), чтобы я мог сравнить их как строки?Украсить Целочисленные значения для сравнения в виде строк

Заранее спасибо.

+1

Что вы подразумеваете под украшением? – jjnguy

+1

Что значит миллиард? ;-) –

+0

Общий термин на некоторых европейских языках (французский наверняка) за 10^9 - мы исторически используем 10^12 как миллиард в Европе. –

ответ

3

Просто добавьте столько, сколько ведущих нулей по мере необходимости

Так цифры 1,2,3 становятся в виде строки: 0000000001, 0000000002, 0000000003 Таким образом, сравнение строк идет правильно

В Java вы хотите использование:

String.format("%09d", number); 

имеет 9 ведущих нулей.

+0

Спасибо, я должен проверить это. –

0

Другой вариант - изменить ваш запрос, чтобы преобразовать значение строки обратно в целое число. (Pseudcode ниже, не может скомпилировать/работу для базы данных)

String sql = " SELECT * " 
+ " FROM some_table " 
+ " WHERE CAST(some_table.int_column_stored_as_string AS INTEGER) = ?"; 
PreparedStatement stmt = conn.prepareStatement(sql); 
stmt.setInteger(1, myIntValue); 

Одна проблема состоит в том, что, так как это запускает функцию на каждой строке, база данных будет невозможно использовать какие-либо показатели, определенные на some_table.int_column_stored_as_string.

 Смежные вопросы

  • Нет связанных вопросов^_^