在尝试在sql server中最后排序null的Union中出错

时间:2010-08-13 11:28:15

标签: sql-server union

我正在尝试按某种特定的顺序对数据库进行排序,但我希望所有的null都在最后,所以我选择所有值为非null,然后选择所有值为WITH,并尝试将它们与Union连接。喜欢:

SELECT * FROM preferences WHERE preferenceOrder IS NOT NULL 
                               ORDER BY preferenceOrder ASC
UNION

SELECT * FROM preferences WHERE preferenceOrder IS NULL 
                               ORDER BY preferences ASC

但服务器抛出错误:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'union'.

我无法找出错误是什么..上面的句子出了什么问题?

谢谢!

1 个答案:

答案 0 :(得分:6)

我认为你应该order by (case when preferenceOrder is null then 0 else 1 end), preferenceOrder而不是这个联盟。