我需要对字段“name”进行排序,其中包含一些名称,NULL和很少的空白记录。不知何故,我需要通过在顶部按字母顺序排列所有名称来排序它们,之后包含NULL的所有行都应该出现,之后包含空白的所有行都应该出现。例如我的表是
id Name
1 NULL
2 NULL
3
4
5 Mobile
6 Apparel
7 Shoes
所以结果应该是
6 Apparel
5 Mobile
7 Shoes
1 NULL
2 NULL
3
4
这种格式可能有数千行,所以我不知道有多少空行和空行。以上示例只是一个示例。
答案 0 :(得分:1)
SELECT Name
FROM
(
SELECT
CASE
WHEN Name IS NULL THEN 1
WHEN Name = '' THEN 2
ELSE 0 END
Sorter,
Name
FROM YourTable
) t
ORDER BY Sorter, Name
或者没有子选择:
SELECT Name
FROM YourTable
ORDER BY
CASE
WHEN Name IS NULL THEN 1
WHEN Name = '' THEN 2
ELSE 0
END,
Name