有沒有辦法在sql中組合ORDER BY
和IS NULL
,以便我可以按列排序,如果列不爲null,但是如果它爲null,order通過另一列?如果Column1不爲空,則按Column1排序,否則按Column2排序
謝謝!
有沒有辦法在sql中組合ORDER BY
和IS NULL
,以便我可以按列排序,如果列不爲null,但是如果它爲null,order通過另一列?如果Column1不爲空,則按Column1排序,否則按Column2排序
謝謝!
喜歡的東西:
ORDER BY CASE
WHEN Column1 IS NOT NULL THEN Column1
ELSE Column2
END
的寫法:
ORDER BY IFNULL(Column1, Column2)
你可以用下面的嘗試:
ORDER BY ISNULL(firstField, secondField)
MySQL ISNULL返回1/0,而不是非空列(你的意思是IFNULL?)。 –
試試這個
ORDER BY COALESCE(fieldA, fieldB);
我沒有任何表ATM在那裏我可以測試它,但是這可能工作,至少它確實沒有可用的數據:
SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.id
WHERE 1
ORDER BY IF(table2.id, table1.id, table1.name)
此外,我不知道該命令會是什麼樣子,如果表2。 id有時是空的,看起來很不穩定。
SQL中沒有'IF'(絕對不適用於Postgres) –
[http://stackoverflow.com/questions/5055540/order-by-countcolumns-not-null][1] - 這裏回答你的問題 [1]:HTTP:// stackoverflow.com/questions/5055540/order-by-countcolumns-not-null – yAnTar