大佬教程收集整理的这篇文章主要介绍了Oracle order by子句对NULL的排序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们都知道在Oracle sql语句中order by 是用来排序查询出来的结果集的,而在Oracle中NulL值是一个很特殊的值,如果order by指定的列有NulL值,那排序结果又是怎样的呢。
下面做一组实验观察一下order by时Oracle是怎么处理NulL的
版本11.2.0.4
1、创建测试表并插入测试数据
zx@ORCL>createtablet(IDnumber,namevarchar2(10)); tablecreated. zx@ORCL>inserTintotvalues(1,'zx'); 1rowcreated. zx@ORCL>inserTintotvalues(2,'wl'); 1rowcreated. zx@ORCL>inserTintotvalues(3,'zxt'); 1rowcreated. zx@ORCL>inserTintotvalues(4,null); 1rowcreated. zx@ORCL>inserTintotvalues(5,'yhz'); 1rowcreated. zx@ORCL>inserTintotvalues(6,null); 1rowcreated. zx@ORCL>commit; Commitcomplete. zx@ORCL>SELEct*fromt; IDname ---------------------------------------- 1zx 2wl 3zxt 4 5yhz 6 6rowsSELEcted.
2、测试order by
zx@ORCL>SELEct*fromtorderbynameasc; IDname ---------------------------------------- 2wl 5yhz 1zx 3zxt 6 4 6rowsSELEcted. zx@ORCL>SELEct*fromtorderbynamedesc; IDname ---------------------------------------- 4 6 3zxt 1zx 5yhz 2wl 6rowsSELEcted.
看到不同的排序方式,NulL值所排序的位置不同。升序(asC)NulL排在最后,降序(desc)NulL排在最前。
我们再来看看官方文档是怎么描述的
ASC | DESCSpecify the ordering sequence (ascending or descending).ASC
is the default.
NulLS
LAST
is the default for ascending order,andFirsT
is the default for descending order.
可以看到我们的实验结果与官方文档描述是一致的。而且还可以使用NulLS FirsT|NulLS LAST来决定NulL的值是排在最前还是排在最后。
3、再次做实验验证
zx@ORCL>SELEct*fromtorderbynameascnullsfirst; IDname ---------------------------------------- 6 4 2wl 5yhz 1zx 3zxt 6rowsSELEcted. zx@ORCL>SELEct*fromtorderbynameascnullslast; IDname ---------------------------------------- 2wl 5yhz 1zx 3zxt 6 4 6rowsSELEcted. zx@ORCL>SELEct*fromtorderbynamedescnullsfirst; IDname ---------------------------------------- 4 6 3zxt 1zx 5yhz 2wl 6rowsSELEcted. zx@ORCL>SELEct*fromtorderbynamedescnullslast; IDname ---------------------------------------- 3zxt 1zx 5yhz 2wl 6 4 6rowsSELEcted.
从结果可以看出使用NulLS FirsT|NulLS LAST可以直接控制NulL值在排序结果的首部还是尾部。
以上是大佬教程为你收集整理的Oracle order by子句对NULL的排序全部内容,希望文章能够帮你解决Oracle order by子句对NULL的排序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。