[转]Oracle关于null的处理
2016-04-25 10:21
447 查看
转至:http://www.2cto.com/database/201209/157606.html
关于空值null的排序问题
Oracle排序中NULL值处理的五种常用方法:
1、缺省Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前
2、使用nvl函数
www.2cto.com
nvl函数可以将输入参数为空时转换为一指定值,如
nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过这个函数可以定制null的排序位置。
3、使用decode函数
decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一指定的值,如
decode(employee_name,null,’张三’, employee_name)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过这个函数可以定制null的排序位置。
4、使用case 语法
Case语法是Oracle 9i后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用
www.2cto.com
如:
select *
from employee
order by (case employee_name
when null then
'张三'
else
employee_name
www.2cto.com
end)
表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过case语法同样可以定制null的排序位置。
5、使用nulls first 或者nulls last 语法
Nulls first和nulls last是Oracle Order by支持的语法
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
使用语法
www.2cto.com
将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first //cb_ld是空值的始终放到最前
将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
关于空值null的排序问题
Oracle排序中NULL值处理的五种常用方法:
1、缺省Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前
2、使用nvl函数
www.2cto.com
nvl函数可以将输入参数为空时转换为一指定值,如
nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过这个函数可以定制null的排序位置。
3、使用decode函数
decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一指定的值,如
decode(employee_name,null,’张三’, employee_name)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过这个函数可以定制null的排序位置。
4、使用case 语法
Case语法是Oracle 9i后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用
www.2cto.com
如:
select *
from employee
order by (case employee_name
when null then
'张三'
else
employee_name
www.2cto.com
end)
表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
通过case语法同样可以定制null的排序位置。
5、使用nulls first 或者nulls last 语法
Nulls first和nulls last是Oracle Order by支持的语法
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
使用语法
www.2cto.com
将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first //cb_ld是空值的始终放到最前
将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
相关文章推荐
- Oracle VM + centos7.1+openstack kilo 多结点安装教程---glance的安装
- oracle实用语句集锦
- arcgis 10.1 desktop安装oracle客户端,直连报错
- ORACLE表空间的导入与导出
- Oracle在Linux下使用异步IO配置
- hadoop从oracle中到数据
- ORACLE数据库SQL语句执行时间
- PLSQL常用函数(ORACLE)(2)
- PLSQL常用函数(ORACLE)(3)
- PLSQL常用函数(ORACLE)(1)
- Oracle DECODE函数的用法详解
- Oracle 索引 详解
- oracle 服务启动TNSLSNR.exe占用8080端口导致tomcat无法启动的问题
- Oracle查看用户默认表空间使用情以及手动扩展表空间sql语句
- Oracle 判断值是否为数字的函数
- Oracle 常用命令
- oracle键、索引、约束及其区别
- 完全卸载oracle11g步骤
- Oracle 11G DataGuard 角色转换
- Oracle 交换分区