Oracle 常用的NULL值处理方法

摘要:
1.默认情况下,当Oracle处于Orderby时,默认值为null,因此ASC升序是最后一个,DESC降序是第一个。2.当输入参数为空时,使用nvl函数将其转换为特定值。例如,nvl表示当employee_当name为空时,返回张三;如果没有,则返回员工_姓名可以通过此函数自定义空的排序位置。
1、缺省处理
 
Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前
2、使用nvl函数
 
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后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用
如:
1 select *
2 from employee
3 order by (case employee_name
4 when null then
5 '张三'
6 else
7 employee_name
8 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)
使用语法如下:
--将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first
 
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last

免责声明:文章转载自《Oracle 常用的NULL值处理方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Bootstrap3入门云原生时代消息中间件的演进路线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

转:oracle常见重要视图-v$sql,v$sql_plan,v$sqltext,v$sqlarea,v$sql_plan_statistcs

v$sqlV$SQL中存储具体的SQL语句。 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。 例1: 这里介绍以下child cursor user A: select * from tbl user B: select * f...

Select 语句执行顺序以及如何提高Oracle 基本查询效率

作者:技术改变世界 今天把这几天做的练习复习了一下,不知道自己写得代码执行的效率如何以及要如何提高,于是乎上网开始研究一些材料,现整理如下: 首先,要了解在Oracle中Sql语句运行的机制。以下是sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权...

Oracle 编写存储过程并设置定时执行

Oracle 版本:11g PL/SQL 版本:11.0.3.1770 1.如果编写单个存储过程,则直接在procedure新建并编写;如果需要写多个同类功能的存储过程,为了方便管理,可以现在package中定义,然后在package bodies 中编写过程体,如下图所示: 1.1 编写单个procedure 1.1.1右键procedure,新建——...

Oracle笔记

一、概念 1.表空间:段->分区->块 。表空间分类:系统、临时表、永久表、大小文件表 。段分类:数据段、临时段、索引段、回滚段。 2.该关心的11G新特性:=>符号指定函数特定参数、序列、正则表达式、触发器、continue可以再循环使用。 二、sql 基础(不熟部分) DDL: 1.索引 2.修改表:alter add(列) modi...

Oracle Data Guard 重要配置参数

Oracle Data Guard主要是通过为生产数据库提供一个或多个备用数据库(是产生数据库的一个副本),以保证在主库不可用或异常时数据不丢失并通过备用数据库继续提供服务。对于Oracle DG的配置,我们可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操...

oracle11g-rac安装部署

网上11g rac安装文档大多不详细,今天来一个详细的! 纯操作文档,不喜勿喷!! 环境:   系统:rhel5.5   oracle:11.2.03   双网卡   共享磁盘 ip地址和主机名规划:   #节点1 主机名:rac1   #节点2 主机名:rac2   192.168.56.11   rac1  192.168.56.22   rac2  ...