部分排序数据库字段

时间:2012-02-09 11:22:16

标签: database sorting field

我需要对字段“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    

这种格式可能有数千行,所以我不知道有多少空行和空行。以上示例只是一个示例。

1 个答案:

答案 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