2012-02-09 80 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