一、nvl函数

功能:从两个表达式返回一个非 NULL 值。

语法:

select nvl(expression1, expression2)

-- 如果 expression1 计算结果为 null,则返回 expression2

-- 任意一种数据类型

-- 如果 expression1、expression2 都为null则返回null

select nvl(null, 1) from dual;

-- 1

返回值类型:字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值。

两个表达式数据类型必须一致。

二、nvl2函数

语法:

select nvl2(expression1, expression2, expression3)

-- expression1 不为null则返回 expression2

-- expression1 为null则返回 expression3

expression2 和 expression3 类型不同情况下,会强制转换为 expression2 数据类型。

select nvl2(expr, 1, 0) from dual;

三、nullif函数

语法:

select nullif(100, 200)

-- 100

说明:相等返回null,不等返回 expression1。

四、decode函数

SQL中没有逻辑判断语句(分支语句),decode 函数可以完成类似功能。

语法:

select decode(条件, 值1, 返回值1, 值2, 返回值2..., 值n, 返回值n, 缺省值);

/*

IF 条件 = 值1 THEN

RETURN(返回值1)

ELSIF 条件 = 值2 THEN

RETURN(返回值2)

......

ELSIF 条件 = 值n THEN

RETURN(返回值n)

ELSE

RETURN(缺省值)

END IF

*/

应用:结合 lpad 补全函数,可以使主键的值自动加1并补0。

select lpad(decode(count(id), 0, 1, max(to_number(id)+1)), 14, '0') as col from dual;

应用:性别统计。

select decode(sex, '男', 1, 0), decode(sex, '女', 1, 0) from table_name;

应用:order by 对字符进行特定的排序。

select * from table_name

order by decode(subject_name, '语文', 1, '数学', 2, '英语', 3);

标签:nvl,null,decode,expression1,Oracle,返回值,expression2,select

来源: https://www.cnblogs.com/hider/p/12466170.html

oracle 空值处理nvl2,Oracle学习笔记:nvl、nvl2、nullif、decode函数相关推荐

  1. oracle protocol=beq 不可用,学习笔记:Oracle数据库坏块 深入研究obj$坏块导致exp/expdp不能执行原因...

    天萃荷净 深入研究Oracle坏块obj$导致exp/expdp不能执行导出的原因 上篇(案例:Oracle出现obj$坏块exp/expdp导出不能导出的解决办法ORA-01578 ORA-0111 ...

  2. oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...

    天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...

  3. oracle in查询 一直等待,学习笔记:Oracle awr 分析解决inactive transaction branch等待事件...

    天萃荷净 通过Oracle AWR报告分析inactive transaction branch等待事件的原因 分析一份awr,发现不太熟悉的等待事件"inactive transactio ...

  4. oracle访问控制策略查看,【学习笔记】oracle fga 细粒度访问控制研究笔记

    天萃荷净 oracle研究中心学习笔记:分享一篇关于Oracle数据库细粒度访问控制的学习笔记,详细介绍了Implement fine-grained access control (Fine-Gra ...

  5. pandas学习笔记:pandas.Dataframe.rename()函数用法

    pandas学习笔记:pandas.Dataframe.rename()函数用法 pandas.Dataframe.rename()函数主要是用来修改Dataframe数据的行名和列名. 主要用到的参 ...

  6. MySQL学习笔记(四)——分组函数,分组查询,连接查询

    MySQL学习笔记(四)--分组函数,分组查询,连接查询 作者:就叫易易好了 日期:2020/11/18 一.分组函数 功能:用作统计使用,又称为聚合函数或统计函数 分类: sum函数 avg函数 m ...

  7. Windows事件等待学习笔记(三)—— WaitForSingleObject函数分析

    Windows事件等待学习笔记(三)-- WaitForSingleObject函数分析 要点回顾 WaitForSingleObject NtWaitForSingleObject KeWaitFo ...

  8. Python学习笔记——for循环和range函数

    Python学习笔记--for循环和range函数 Python的for循环 for 目标 in 表达式 :循环体 案例一 >>> example = 'abcdef' >&g ...

  9. OpenCV学习笔记(5)_ ellipse绘制函数浅析

    OpenCV学习笔记(5)_ ellipse绘制函数浅析 文章目录 OpenCV学习笔记(5)_ ellipse绘制函数浅析 1. ellipse第一种重载--绘制椭圆弧 1.1 函数原型 1.2 参 ...

  10. python学习笔记(五)---替换函数

    python学习笔记(五)-替换函数 replace()函数替换内容 用法: replace('需要替换的内容','替换后的内容',替换次数) 备:如果需要替换单引号需要加'\' 例子: str = ...

最新文章

  1. Oracle命令(一):Oracle登录命令
  2. Vue2.x-03使用vue-cli搭建Vue开发环境
  3. 线性筛法 与 线性求欧拉函数 的计算模板
  4. JavaScript拖拽
  5. andengine游戏引擎总结基础篇
  6. 关于CPU指标的解释
  7. CL_CRM_WEB_UTILITY
  8. python爬取知乎标题_python爬虫 爬取知乎文章标题及评论
  9. 【Spring.net点滴】
  10. 快播王欣再做视频;Apple Watch 非法雇佣学生;ofo 进军电单车 | 极客头条
  11. python pip 重新安装mysql_解决Ubuntu pip 安装 mysql-python包出错的问题
  12. c语言程序设计及gis,C语言程序设计(西安工程大学)2020知到答案全套
  13. 递增三元数组——第九届蓝桥杯C语言B组(省赛)第六题
  14. Access宏学习总结
  15. unity3d做俄罗斯方块
  16. 父类声明子类实例化对象详解
  17. Navicat导入sql文件报错
  18. 双模sa_NSA/SA双模5G基站才是通信运营商决胜未来的关键!
  19. PAT 1006 换个格式输出整数 (15 分)(Java)
  20. 技术揭秘 | 互联网广告黑产盛行,如何反作弊?

热门文章

  1. KITTI 数据集--下载链接
  2. 坑爹的老板、经理和领导,让人直想爆粗口
  3. 别太迷信HIFI和发烧
  4. 云课堂在登陆时显示服务器错误,原神无法登录服务器错误码4201怎么办
  5. 中国互联网公司50强区块链布局图谱,近一半是区块链的“门外汉”?
  6. mysql 查看表v空间自增涨_面试问烂的 MySQL 查询优化,看完屌打面试官!
  7. 80核处理器_Ampere Altra处理器未来发展规划公布,Altra Max?将扩展到128核
  8. ​2019年排名Top 100的Java类库——在分析了30073份源码之后得出的结论
  9. ”中隆菩梯“技术支持
  10. 【会助力】多样化签到方式,让会议灵活高效