Вы должны по крайней мере избежать одиночной кавычки. Насколько я знаю, "\" обратная косая черта не нуждается в экранировании.
Проблема заключается в одинарных кавычках, crate.io использует их для явного обозначения значения столбца, как упомянуто здесь
SELECT "field" FROM "doc"."test" where field = '''dhruv\' limit 100;
Выше будет возвращен результат (пример того, что я запускаю на моей локальной машине).
Таким образом, ваш запрос должен выглядеть следующим образом (обратите внимание на правильное завершение одной кавычкой):
String query = "select * from test where col1='''dhruv\'";
ОБНОВЛЕНИЕ:
Тогда я бы предложил, если вам придется сделать это таким образом, экранировать только переменную "escapedValue" и добавить ее
String query = "select * from test where col1=" + "'" + escapedValue + "'";
Когда Вы делаете целочисленное деление (целое число, разделенное на целое число), Вы всегда получаете целочисленный ответ. 50/100 =.50, который является 0 в целом числе - говорят.
Вы попытались делить MY_COLUMN на 100,0?
Бросьте целые числа.
SELECT (cast(50 AS float)/100)
Вы делаете целочисленное деление. 50/100 0 с остатком от 50.
Необходимо использовать деление с плавающей точкой.
Вы делите 2 целых числа, который приводит к другому целому числу.
Это должно возможный бросить тот путь, также
ВЫБЕРИТЕ (50/100):: числовой;
NB - Будьте осторожны: остаток от целочисленного деления не округляется. Скорее его отбрасывают. Это эквивалентно вызову функции FLOOR sql.
Это обычное явление, и определяется как таковое, потому что при умножении двух целых чисел дробь никогда не встречается. Поэтому при умножении целых чисел никогда не используется методология обработки дробей, но этого нельзя сказать о целочисленном делении.
Это часто может сказаться при выполнении арифметики dateTime в SQL.