在我的數據庫SQLite的我有一個存儲爲字符串,爲什麼當我嘗試將它們與此查詢訂單編號的字母順序
select... order by cast("+filter+" as real)
訂購
這個錯誤的順序返回我的號碼列浮點數和時間列:
22,5
23
23,5
23
23,5
24,5
24
或我的時間列也與此順序錯誤:
00:56
00:57
00:52
00:46
在我的數據庫SQLite的我有一個存儲爲字符串,爲什麼當我嘗試將它們與此查詢訂單編號的字母順序
select... order by cast("+filter+" as real)
訂購
這個錯誤的順序返回我的號碼列浮點數和時間列:
22,5
23
23,5
23
23,5
24,5
24
或我的時間列也與此順序錯誤:
00:56
00:57
00:52
00:46
嘗試
select... order by cast(replace("+filter+",',','.') as real)
Sqlite需要點而不是逗號作爲分數部分分隔符。它也默默忽略了不可轉換的尾巴,所以'24,5'轉換爲24.0。
從您的時間欄開始,如果您將其排序爲字符串,而不是將其轉換爲浮點型,它將很好地排序。但是如果你想出於某種原因投射它,你可以用冒號變成replace
。
您是否嘗試過訂購它們而不將它們轉換爲真實的訂單,因爲字符串可能會工作 –
因此,您在字符串列中有兩個非字符串數據類型。你今天過得不好嗎? 45:24應該在45.24之前還是之後? –