Я работаю над приложением для Android, где у пользователя есть разные варианты сортировки отображаемых данных, поступающих из базы данных. В настоящее время моя строка orderBy, которую я передаю методу query () в Android, выглядит следующим образом:
"LOWER("+columnName+") ASC"
Проблема в том, что если тип данных в столбце, заданном параметром columnName, является целочисленным, то при вызове LOWER () он будет отсортирован в алфавитном порядке, т.е. только на основе самой левой цифры, что, конечно, не имеет смысл для числовых данных. Следовательно, я хочу применять только LOWER (), если тип данных столбца не является целочисленным. Я имею в виду следующее утверждение:
"CASE WHEN [data type of columnName is integer] THEN "+columnName+" ASC ELSE LOWER("+columName+") ASC END"
Часть в скобках - это то, что я не знаю, как это сделать. Предоставляет ли SQLite функцию для определения типа данных столбца?