代码之家  ›  专栏  ›  技术社区  ›  iamserious

联合尝试在SQL Server的结尾对空值排序时出错

  •  0
  • iamserious  · 技术社区  · 16 年前

    我试图按特定的顺序对数据库进行排序,但我希望所有的空值都在末尾,所以我选择了所有不带空值的值,然后选择了所有带空值的值,并尝试将它们与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 回复  |  直到 16 年前
        1
  •  6
  •   tenfour    16 年前

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