SQL:如何在orderby中向前面命令null和empty条目?

时间:2012-01-26 16:30:56

标签: sql sql-server tsql

如果我的数据库中有以下条目:

ID名称
1 [null]
2 [空字符串]
3阿尔法
4 Bravo
5查理

..那么在使用ORDER BY时如何订购名称前面的行?

如果我使用ORDER BY Name,我会得到上面的列表,但实际上我想要:

3 Alpha
4 Bravo
5查理 1 [null]
2''

4 个答案:

答案 0 :(得分:22)

ORDER BY 
    CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = ''    THEN 2 
    ELSE 3 
    END DESC, 
    Name ASC

答案 1 :(得分:2)

你可以这样做:

ORDER BY CASE WHEN Name IS NULL then 3 WHEN Name = '' THEN 2 ELSE 1 END, Name

它将通过名称中的第一个和后一个数字的顺序排序。

答案 2 :(得分:2)

ORDER BY 
CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = '' THEN 2 
    ELSE 3
END DESC,
Name ASC

答案 3 :(得分:0)

ORDER BY(当名称为空时,名称为空,然后2结束3结束)DESC