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

如何在sql中首先按非空值的列排序,sql,sql-server,Sql,Sql Server,我需要编写一个sql语句来选择按lastname、firstname排序的所有用户。这是我知道如何做的部分:)我不知道如何做的是首先按非空值排序。现在我明白了: 空,空 空,空 p1Last,p1First p2Last,p2First 等 我需要得到: p1Last,p1First p2Last,p2First 空,空 空,空 有什么想法吗?见 ORDER BY CASE WHEN name IS NULL THEN 1 ELSE 0 END, name; 基本上 SELECT *

我需要编写一个sql语句来选择按lastname、firstname排序的所有用户。这是我知道如何做的部分:)我不知道如何做的是首先按非空值排序。现在我明白了:

空,空
空,空
p1Last,p1First
p2Last,p2First

我需要得到:

p1Last,p1First
p2Last,p2First
空,空
空,空

有什么想法吗?

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

SELECT *
    FROM @Temp
    ORDER BY CASE WHEN LastName IS NULL THEN 1 ELSE 0 END, LastName
如今的
IIF(布尔表达式、真值、假值)

也适合

按IIF排序(名称为空,1,0),名称