此文章主要介绍的是当SQL Server排序时遇到NULL的实际解决方案,对于这个问题,可以说被提及的频率,居高不下,其主要是是客户之前使用的是Oracle数据库,那么他在使用SQL Server的时候会有一个疑问,就是在处理NULL值上面,SQL Server与Oracle的行为不一样 。
在Oracle中,NULL值会认为是一个无穷大的值,所以假如按照升序排列的话,则会被排在最后面在SQL Server中则正好相反,NULL值会被认为是一个无穷小的值,所以假如按照升序排列的话,则会被排在最前面
如
SELECT [ID] FROM [demo].[dbo].[Orders] Order By ID
则会看到如下的效果
那么,有没有什么办法让SQL Server的这个默认机制与Oracle一样吗?答案是:没有
但我们可以想一些变通的办法,例如可以像下面这样写代码
SELECT [ID] FROM [demo].[dbo].[Orders] Order By CASE WHEN ID IS NULL THEN 1 ELSE 0 END
这样的话,就可以看到如下的效果
假如该列有创建索引,那么可以看到如下的执行计划
但是,仍然还有其他的一种解决方案,可以把该列的默认值设置为一个很大的值,也就是说,假如用户无法提供该列的值,则默认用一个很大的数字代替。假如是INT型,这个数字,可以是2147483647。这样的情况下,假如排序的时候当然就不需要再进行判断了。

上述的相关内容就是对SQL Server排序时遇上了NULL值的描述,希望会给你带来一些帮助在此方面。
很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...
Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...
打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...
我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...
北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...