Символы ПОРЯДКА SQL численно

Вы можете легко оценивать выражения, если ваше приложение Java уже обращается к базе данных без использования каких-либо других JAR.

Некоторые базы данных требуют, чтобы вы использовали фиктивную таблицу (например, «двойную» таблицу Oracle) и другие позволит вам оценивать выражения без «выбора» из любой таблицы.

Например, в Sql Server или Sqlite

select (((12.10 +12.0))/ 233.0) amount

и в Oracle

select (((12.10 +12.0))/ 233.0) amount from dual;

Преимущество использования БД состоит в том, что вы можете одновременно оценить множество выражений. Кроме того, большинство БД позволит вам использовать очень сложные выражения и также будет иметь ряд дополнительных функций, которые можно назвать необходимыми.

Однако производительность может пострадать, если много отдельных выражений нужно оценивать индивидуально, особенно когда БД находится на сетевом сервере.

Ниже рассматриваются проблемы производительности в некоторой степени, используя базу данных Sqlite in-memory.

Вот полный рабочий пример в Java

Class. forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite::memory:");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery( "select (1+10)/20.0 amount");
rs.next();
System.out.println(rs.getBigDecimal(1));
stat.close();
conn.close();

Конечно, вы могли бы расширить вышеупомянутый код, чтобы обрабатывать несколько вычислений одновременно.

ResultSet rs = stat.executeQuery( "select (1+10)/20.0 amount, (1+100)/20.0 amount2");
37
задан Cade Roux 29 January 2009 в 01:40
поделиться

3 ответа

Попробуйте это:

ORDER BY CAST(thecolumn AS int)
75
ответ дан Ray Hidayat 27 November 2019 в 03:12
поделиться

Причина этого состоит в том, что с типом данных char, Вы сортируете строки как строку.

идея ORDER BY CAST() корректна, однако производительность этого понизится как количество возвращенных увеличений результатов.

, Если бы это - только числовые данные в этом столбце, лучшая практика должна была бы найти подходящий числовой тип данных и изменить его.

, Если Вы действительно не можете изменить столбец и Вы имеете проблемы производительности, я предлагаю иметь столбец порядка сортировки, который содержит бросок значения к целому числу (будет аннулировать преобразованный в соответствующее значение).

Индекс столбец порядка сортировки и идеально, добавьте триггер к столбцу CHAR так, чтобы вставил или обновил к символьному триггеру значения обновление целочисленного значения.

1
ответ дан Andy K 10 October 2019 в 08:28
поделиться

Это - проблема с упорядочиванием числовых строк в "естественном виде" (Вы поиск "естественная сортировка" на Google при нахождении тонн материала). По существу кастинг строки, поскольку интервал и сортировка на получающемся значении должны зафиксировать его.

2
ответ дан BenAlabaster 27 November 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: