oracle 空值处理nvl2,Oracle学习笔记:nvl、nvl2、nullif、decode函数
一、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函数相关推荐
- oracle protocol=beq 不可用,学习笔记:Oracle数据库坏块 深入研究obj$坏块导致exp/expdp不能执行原因...
天萃荷净 深入研究Oracle坏块obj$导致exp/expdp不能执行导出的原因 上篇(案例:Oracle出现obj$坏块exp/expdp导出不能导出的解决办法ORA-01578 ORA-0111 ...
- oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...
天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...
- oracle in查询 一直等待,学习笔记:Oracle awr 分析解决inactive transaction branch等待事件...
天萃荷净 通过Oracle AWR报告分析inactive transaction branch等待事件的原因 分析一份awr,发现不太熟悉的等待事件"inactive transactio ...
- oracle访问控制策略查看,【学习笔记】oracle fga 细粒度访问控制研究笔记
天萃荷净 oracle研究中心学习笔记:分享一篇关于Oracle数据库细粒度访问控制的学习笔记,详细介绍了Implement fine-grained access control (Fine-Gra ...
- pandas学习笔记:pandas.Dataframe.rename()函数用法
pandas学习笔记:pandas.Dataframe.rename()函数用法 pandas.Dataframe.rename()函数主要是用来修改Dataframe数据的行名和列名. 主要用到的参 ...
- MySQL学习笔记(四)——分组函数,分组查询,连接查询
MySQL学习笔记(四)--分组函数,分组查询,连接查询 作者:就叫易易好了 日期:2020/11/18 一.分组函数 功能:用作统计使用,又称为聚合函数或统计函数 分类: sum函数 avg函数 m ...
- Windows事件等待学习笔记(三)—— WaitForSingleObject函数分析
Windows事件等待学习笔记(三)-- WaitForSingleObject函数分析 要点回顾 WaitForSingleObject NtWaitForSingleObject KeWaitFo ...
- Python学习笔记——for循环和range函数
Python学习笔记--for循环和range函数 Python的for循环 for 目标 in 表达式 :循环体 案例一 >>> example = 'abcdef' >&g ...
- OpenCV学习笔记(5)_ ellipse绘制函数浅析
OpenCV学习笔记(5)_ ellipse绘制函数浅析 文章目录 OpenCV学习笔记(5)_ ellipse绘制函数浅析 1. ellipse第一种重载--绘制椭圆弧 1.1 函数原型 1.2 参 ...
- python学习笔记(五)---替换函数
python学习笔记(五)-替换函数 replace()函数替换内容 用法: replace('需要替换的内容','替换后的内容',替换次数) 备:如果需要替换单引号需要加'\' 例子: str = ...
最新文章
- Oracle命令(一):Oracle登录命令
- Vue2.x-03使用vue-cli搭建Vue开发环境
- 线性筛法 与 线性求欧拉函数 的计算模板
- JavaScript拖拽
- andengine游戏引擎总结基础篇
- 关于CPU指标的解释
- CL_CRM_WEB_UTILITY
- python爬取知乎标题_python爬虫 爬取知乎文章标题及评论
- 【Spring.net点滴】
- 快播王欣再做视频;Apple Watch 非法雇佣学生;ofo 进军电单车 | 极客头条
- python pip 重新安装mysql_解决Ubuntu pip 安装 mysql-python包出错的问题
- c语言程序设计及gis,C语言程序设计(西安工程大学)2020知到答案全套
- 递增三元数组——第九届蓝桥杯C语言B组(省赛)第六题
- Access宏学习总结
- unity3d做俄罗斯方块
- 父类声明子类实例化对象详解
- Navicat导入sql文件报错
- 双模sa_NSA/SA双模5G基站才是通信运营商决胜未来的关键!
- PAT 1006 换个格式输出整数 (15 分)(Java)
- 技术揭秘 | 互联网广告黑产盛行,如何反作弊?
热门文章
- KITTI 数据集--下载链接
- 坑爹的老板、经理和领导,让人直想爆粗口
- 别太迷信HIFI和发烧
- 云课堂在登陆时显示服务器错误,原神无法登录服务器错误码4201怎么办
- 中国互联网公司50强区块链布局图谱,近一半是区块链的“门外汉”?
- mysql 查看表v空间自增涨_面试问烂的 MySQL 查询优化,看完屌打面试官!
- 80核处理器_Ampere Altra处理器未来发展规划公布,Altra Max?将扩展到128核
- ​2019年排名Top 100的Java类库——在分析了30073份源码之后得出的结论
- ”中隆菩梯“技术支持
- 【会助力】多样化签到方式,让会议灵活高效