我想按两个日期排序, startdate 和 enddate ,其中一个可能为null。
答案 0 :(得分:2)
这个ORDER BY子句应该这样做:
ORDER BY
CASE WHEN startdate IS NULL THEN 1 ELSE 0 END,
startdate,
CASE WHEN enddate IS NULL THEN 0 ELSE 1 END,
enddate
根据您的DBMS,可能有更简单的方法,但不一定是可移植的。
答案 1 :(得分:2)
如果您的数据库是Oracle,那么您可以写:
SELECT startdate, enddate
FROM yourtable
ORDER by startdate NULLS LAST, enddate NULLS FIRST;