[SQL ] SQLite 的 SELECT WHERE問題

看板Database作者 (Johnny.T)時間13年前 (2012/06/18 22:58), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/2 (看更多)
大家好,小弟的手機APP目前是用SQLite3當作資料儲存的工具 最近遇到一些SELECT的問題..想請問一下各位 假設有"days"欄位儲存數字 假設有 -3 , -2 , -1 , 0 , 1 , 2 , 3 六筆資料 現在我想如此排序:0、1、2、3、-1、-2、-3 但是用ORDER BY DESC/ASC都排不出我想要的 所以我想說能不能先把大於0的取出來,再進行排序 SELECT * FROM database WHERE days > 0 ORDER BY DESC 然後再把小於0的取出來,再排序一次,如此就能達到我的需求 但是我試過了‥上面那行有成功把大於0的取出來進行排序, 但當我想要取小於0的再進行排序就不行了,我試過再後面加 AND days < 0 這樣會CRASH...還有OR days < 0..這樣全部都會取出來.. 不知道有沒有高手可以指點一下!?感恩!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.76.170

06/19 00:12, , 1F
case when ~ 我是用MySQL SQLite 我沒試過
06/19 00:12, 1F

06/19 03:38, , 2F

06/19 03:39, , 3F
前面的CASE WHEN如果在MySQL可以換成SIGN..
06/19 03:39, 3F

06/19 03:40, , 4F
不過SQLite沒有SIGN函數...試試看吧..
06/19 03:40, 4F

06/19 03:42, , 5F
還有,你不能用OR,要用UNION,不過SQLite不支援..
06/19 03:42, 5F

06/19 19:56, , 6F
感謝樓上..快成功了..但是AS好像只能產生一個column出來..
06/19 19:56, 6F

06/19 19:57, , 7F
用兩個AS會crash的說>"<
06/19 19:57, 7F

06/19 21:35, , 8F

06/19 21:36, , 9F
把ABS函數放到ORDER BY 試試看唷^^
06/19 21:36, 9F
文章代碼(AID): #1Ftq87SV (Database)
文章代碼(AID): #1Ftq87SV (Database)