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