需求提到需要将为null的数据无论正序还是倒叙都排在最后。
开始想用isnull()给个默认的最大值或者最小值来排序,回头想想好蠢。
后来搜到的这个处理方式非常巧妙——
原文链接SQL Server 排序的时候使 null 值排在最后 - Brambling - 博客园
select UserInfoID,User_No,User_Names from UserInfo order by case when User_NO is null then 1 else 0 end asc,User_NO asc
我的使用实例:
Row_Number() Over(Order By case when FirstStorageOn is null then 1 else 0 end asc,FirstStorageOn $order$) rowIndex
以后排序时,还是可以多在order by后面做做文章。
而且举一反三,这种方式给了很大的启迪,这样子哪怕想把null的数据排在中间都可以。[狗头]
工作的小乐趣就在于时常能发现此类的新姿势,然后有醍醐灌顶的感觉。。。