我正在尝试在SQLite3中进行查询以按数值对列进行排序。而不是按列的数值对行进行排序,而是按行的字母顺序按前一位数字进行排序。
例如在下面的查询中110出现在2之前,因为第一个数字(1)小于2。但是,整数110大于2,我需要在2之后出现。
sqlite> SELECT digit,text FROM test ORDER BY digit;
1|one
110|One Hundred Ten
2|TWO
3|Three
sqlite>
有没有办法让2后出现110?
答案 0 :(得分:2)
似乎digit
是作为字符串而不是数字存储的。您需要将其转换为数字以获得正确的顺序。一种简单的方法使用:
SELECT digit, text
FROM test
ORDER BY digit + 0