SQL Server 2005:最后以NULL值排序

dan*_*ans 10 sql t-sql sql-server sql-order-by

可能重复:
使用Null进行大小写

我想获得一个由"ordernum"字段排序的记录列表.ordernum字段是一个int字段.此字段从NULL开始,直到由用户设置.我希望NULL条目出现在列表的末尾.

我正在构建一个查询如下:

select *, case when (ordernum is null) then [largestInt] else ordernum end as newordernum
from tableName
order by newordernum
Run Code Online (Sandbox Code Playgroud)

我知道我可以为[largestInt]输入最大可能int的值,但我想用变量替换[largestInt].这可能吗?

dan*_*ans 25

我找到了一种在底部订购NULL值的方法.

http://sqlblog.com/blogs/denis_gobo/archive/2007/10/19/3048.aspx

它很好地满足了我的需求.我的查询现在是:

select *
from tableName
order by case when ordernum is null then 1 else 0 end, ordernum
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的方法.但我发现你的答案几乎与你的问题完全相同,我觉得很奇怪 (3认同)
  • 我知道它可能,没问题.但是这个问题实际上是一个重复,已经在SO上多次回答,所以在这里快速搜索将返回同样的事情 (3认同)