2012-02-09 75 views
1

我需要对包含某个名称,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
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 
+0

奏效...感谢 – neeraj 2012-02-09 11:30:54

+0

最佳感谢一直给予好评,并接受了答案8-) – 2012-02-09 11:32:11

+1

我upvoted,但不知道为什么它不要让我接受的答案。但是确实如此。 – neeraj 2012-02-09 11:34:05