如何在sql中首先按非空值的列排序

时间:2010-05-11 00:35:16

标签: sql sql-server

我需要编写一个sql语句来选择所有按姓氏,名字排序的用户。这是我知道该怎么做的部分:)我不知道怎么做是先按非空值排序。现在我明白了:

null,null
null,null
p1Last,p1First
p2Last,p2First

我需要得到:

p1L1,p1First
p2Last,p2First
null,null
null,null

有什么想法吗?

3 个答案:

答案 0 :(得分:27)

请参阅Sort Values Ascending But NULLS Last

基本上

SELECT *
    FROM @Temp
    ORDER BY CASE WHEN LastName IS NULL THEN 1 ELSE 0 END, LastName

答案 1 :(得分:10)

ORDER BY CASE WHEN name IS NULL THEN 1 ELSE 0 END, name;

答案 2 :(得分:0)

现在的
IIF ( boolean_expression, true_value, false_value )

也适合。

ORDER BY IIF(name IS NULL, 1, 0), name