2010-08-26 51 views
2

我可以更改SQL服務器數據庫中的默認排序順序,以便最後顯示空值和零長度字符串。SQL Server中的排序順序

它的SQL Server 2000的

我強調,我想改變默認爲了讓所有查詢,如果可能的話

回答

1

添加一個虛擬newcolumn =(長(targetColumn位置)> 0),排序由此第一。

5

您幾乎可以在order by中使用case進行任何排序。這裏的null列第一,然後是空字符串,其餘下令COL1和COL3:

select * 
from YourTable 
order by 
     case when col1 is null then 1 
      when col1 = '' then 2 
      else 3 
     end 
,  col2 
,  col3 desc 
4

不,你不能做到這一點:如果沒有ORDER BY,沒有默認的排序順序。這是一個非常普遍的問題,所以我寫了一個罐頭答案:Without ORDER BY, there is no default sort order

+0

+1我相信這是迄今爲止唯一的答案,*真正*地址的問題。 OP特別詢問*默認排序順序(不存在) – 2010-08-26 13:27:59

+1

我懷疑這不是他們的意思。他們希望能夠通過x來執行命令,並且在最後而不是開始處具有空值和空字符串。 – 2010-08-26 13:54:03

+0

@Martin:我可以證實你是正確的:那就是他們的意思。也許它是我需要改變的排序順序。 – cindi 2010-08-26 14:08:28