我在SQLite中有以下查询:
SELECT * FROM t1 ORDER BY t1.field
在SQLite中,t1.field
是一个包含数字的文本列。是否有可能强制SQLite将t1.field的值视为数字而不是字符串(而不进行ALTER TABLE
操作)?目前的排序是纯字符串排序,所以10排在2之前。
谢谢。
我在SQLite中有以下查询:
SELECT * FROM t1 ORDER BY t1.field
在SQLite中,t1.field
是一个包含数字的文本列。是否有可能强制SQLite将t1.field的值视为数字而不是字符串(而不进行ALTER TABLE
操作)?目前的排序是纯字符串排序,所以10排在2之前。
谢谢。
ORDER BY t1.field + 0, t1.field
,那么它将首先对所有数字进行排序,然后对无法转换为数字的所有字符串进行排序 ->["no", "yes", "1", "5", "10", 50"]
。 - relet["10 dogs", "2 dogs", "35 dogs"]
变成["2 dogs", "10 dogs", "35 dogs"]
- fpg1503