Вы можете легко оценивать выражения, если ваше приложение 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");
Попробуйте это:
ORDER BY CAST(thecolumn AS int)
Причина этого состоит в том, что с типом данных char, Вы сортируете строки как строку.
идея ORDER BY CAST()
корректна, однако производительность этого понизится как количество возвращенных увеличений результатов.
, Если бы это - только числовые данные в этом столбце, лучшая практика должна была бы найти подходящий числовой тип данных и изменить его.
, Если Вы действительно не можете изменить столбец и Вы имеете проблемы производительности, я предлагаю иметь столбец порядка сортировки, который содержит бросок значения к целому числу (будет аннулировать преобразованный в соответствующее значение).
Индекс столбец порядка сортировки и идеально, добавьте триггер к столбцу CHAR так, чтобы вставил или обновил к символьному триггеру значения обновление целочисленного значения.
Это - проблема с упорядочиванием числовых строк в "естественном виде" (Вы поиск "естественная сортировка" на Google при нахождении тонн материала). По существу кастинг строки, поскольку интервал и сортировка на получающемся значении должны зафиксировать его.