SQL如果有值,则按列排序

Pat*_*rio 0 sql oracle sql-order-by

我有下表:

对象(o)

id    name              date_completed
----------------------------------------
1     Computer          2016-02-26
2     Desk              NULL
3     Curtain           2016-02-25
Run Code Online (Sandbox Code Playgroud)

我试图使用这个查询:

SELECT * FROM objects ORDER BY date_completed NULLS FIRST, name
Run Code Online (Sandbox Code Playgroud)

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

id    name              date_completed
----------------------------------------
2     Desk              NULL
3     Curtain           2016-02-25
1     Computer          2016-02-26
Run Code Online (Sandbox Code Playgroud)

我想要的结果进行排序,使得它不实际日期命令他们,而是把那些用NULLdate_completed顶部和顺序由他们的名字.然后将值放在date_completed底部的值并按名称排序.

基本上这就是我想要的:

id    name              date_completed
----------------------------------------
2     Desk              NULL
1     Computer          2016-02-26
3     Curtain           2016-02-25
Run Code Online (Sandbox Code Playgroud)

Vam*_*ala 5

SELECT * FROM objects 
ORDER BY (case when date_completed is null then 1 else 2 end),name
Run Code Online (Sandbox Code Playgroud)