將搜索結果按2列排序時出現問題。MySQL ORDER BY 2列有例外
我的表:運輸時間存儲在幾秒鐘內,任命是時間
id transit_time appointment
----------------------------
2 3845 09:00:00
11 22053 13:00:00
10 4852 08:00:00
11 5985 NULL
13 7221 12:45:00
14 3812 NULL
17 4256 NULL
18 5663 NULL
19 4725 NULL
我希望做一個選擇,通過訂購記錄:
任命是在結束NULL
2.預約時間ASC
3.如果運輸時間比預約大於這個紀錄應該是在2點
排序的頂部例如,正確的順序應該是:
id transit_time appointment
----------------------------
11 22053 13:00:00
13 10221 12:45:00
10 3852 08:00:00
2 4245 09:00:00
11 5985 NULL
18 5663 NULL
19 4725 NULL
17 4256 NULL
14 3812 NULL
我已經試過許多種類與CASE但沒有運氣來獲得該訂單。任何幫助將不勝感激。
SELECT * FROM table WHERE ...
ORDER BY (CASE WHEN appointment IS NULL THEN 1 ELSE 0 END) asc,
transit_time desc
您想要的結果不相匹配的樣本數據。你有一個10221或3852在transit_time我不明白它來自哪裏。在sqlfiddle數據所有約會轉換爲second - transit_time給值大於transit_time – Mihai