SQL SELECT 对具有空值的列进行排序
我的问题与此类似: 如何按代码显示表顺序(例如 01、02…然后是空列)?,但适用于 SQL Server。
简而言之,我有一个 SELECT 语句,它返回以下内容:
ColumnA ColumnB
X NULL
Y 1
Z 2
..其中排序由 ColumnB 完成。
我们如何强制 (columnB = NULL) 类型的行到底部?即,预期结果是这样的:
ColumnA ColumnB
Y 1
Z 2
X NULL
谢谢 SOF 社区。
My question is similar to this one: How to display a table order by code (like 01, 02… then null columns)?, but for SQL Server.
In short, I have a SELECT statement, that returns the following:
ColumnA ColumnB
X NULL
Y 1
Z 2
..where the ordering is done by ColumnB.
How can we force the (columnB = NULL) type of rows to the bottom? ie, the expected result is this:
ColumnA ColumnB
Y 1
Z 2
X NULL
Thank you SOF community.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
...或者为了避免价值冲突...
...or in order to avoid value clashing...
您还可以使用 isnull:
isnull 会将 null 替换为您提供给它的值,因此在这种情况下,如果该列为 null,它将替换为 99999。您可以将该值设置为某个大数字,这样它将位于订单底部。
You can also use isnull:
isnull will replace null with the value you provide to it, so in this case, if the column is null, it will replace it with 99999. You can set the value to some big number so it will be at the bottom of the order.
希望能帮助某人,
我只是想补充一点,我遇到了类似的问题,使用 row_number 和分区 -
当它为零时,把它放在最后
我使用了下面的脚本(部分视图):
结果按 MONTHS_TO_AUTOGROWTH 排序,但零排在最后
hoping to help someone,
I just wanted to add that I have had a similiar issue, using row_number and partition by -
when it is zero put it at the end sort of thing
and I used the script below (partial view):
the result is ordered by MONTHS_TO_AUTOGROWTH but zero comes last