【发布时间】:2010-08-26 10:37:57
【问题描述】:
我能否更改 SQL Server 数据库中的默认排序顺序,以便最后显示空值和零长度字符串。
它的 SQL Server 2000
我强调,如果可能的话,我想更改所有查询的默认顺序
【问题讨论】:
我能否更改 SQL Server 数据库中的默认排序顺序,以便最后显示空值和零长度字符串。
它的 SQL Server 2000
我强调,如果可能的话,我想更改所有查询的默认顺序
【问题讨论】:
您几乎可以在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
【讨论】:
不,您不能这样做:没有 ORDER BY,就没有默认排序顺序。这是一个很常见的问题,所以我写了一个罐头答案:Without ORDER BY, there is no default sort order
【讨论】:
order by x 并在结尾而不是开头包含空值和空字符串。
添加一个虚拟的 newcolumn = (length(targetcolumn)>0),并首先按此排序。
【讨论】: