SQL 如果有价值,按列排序

SQL Order By Column If It Has Value

我有以下 table:

对象 (o)

id    name              date_completed
----------------------------------------
1     Computer          2016-02-26
2     Desk              NULL
3     Curtain           2016-02-25

我尝试使用这个查询:

SELECT * FROM objects ORDER BY date_completed NULLS FIRST, name

正如预期的那样,我得到了这个结果:

id    name              date_completed
----------------------------------------
2     Desk              NULL
3     Curtain           2016-02-25
1     Computer          2016-02-26

我希望对结果进行排序,使其不按实际日期排序,而是将带有 NULL 的结果放在顶部的 date_completed 中,然后按姓名。然后把有值的放在最下面的date_completed里,也按名字排序

基本上这就是我想要得到的:

id    name              date_completed
----------------------------------------
2     Desk              NULL
1     Computer          2016-02-26
3     Curtain           2016-02-25
SELECT * FROM objects 
ORDER BY (case when date_completed is null then 1 else 2 end),name