6
我在SQLite的以下查詢:比較字符串作爲號碼的SQLite3
SELECT * FROM t1 ORDER BY t1.field
哪裏t1.field
是包含數字的文本列。強迫SQLite將t1.field的值視爲數字而不是字符串(不做ALTER TABLE
)是否可行?現在排序是一個純字符串,所以10先於2.
謝謝。
我在SQLite的以下查詢:比較字符串作爲號碼的SQLite3
SELECT * FROM t1 ORDER BY t1.field
哪裏t1.field
是包含數字的文本列。強迫SQLite將t1.field的值視爲數字而不是字符串(不做ALTER TABLE
)是否可行?現在排序是一個純字符串,所以10先於2.
謝謝。
好了,找到了解決辦法:
SELECT * FROM t1 ORDER BY t1.field + 0
的+ 0
部分似乎強制轉換爲編號
感謝你幫我,出來被你使用SQLite的上什麼平臺上的興趣? – 2013-10-21 19:30:59
SELECT * FROM t1 ORDER BY CAST(t1.field AS INTEGER) – 2013-10-29 10:16:28
您甚至可以對混合數據進行排序。如果使用'ORDER BY t1.field + 0,t1.field',這將首先對所有數字進行排序,然後將所有不能轉換爲數字的字符串 - >'[「no」,「yes」,「1」 「5」,「10」,「50」]' – relet 2014-11-03 12:33:21