在SQL Server中排序顺序

时间:2010-08-26 10:37:58

标签: sql-server sql-order-by

我是否可以更改SQL Server数据库中的默认排序顺序,以便最后显示空值和零长度字符串。

其SQL Server 2000

我强调,我想更改所有查询的默认顺序,如果可能的话

3 个答案:

答案 0 :(得分:5)

您可以使用case中的order by进行几乎任何排序。这是首先是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

答案 1 :(得分:4)

不,你不能这样做:没有ORDER BY,没有默认的排序顺序。这是一个非常常见的问题,所以我写了一个罐头答案:Without ORDER BY, there is no default sort order

答案 2 :(得分:1)

添加一个虚拟newcolumn =(length(targetcolumn)> 0),然后按此排序。