Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数
Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数
2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
oracle系列文章:
【1】Oracle数据库:啥是oracle数据库?你为啥要学oracle?
【2】Oracle数据库:oracle 11g安装教程,已安装好的oracle各个文件夹的作用,oracle用户权限怎么样
【3】Oracle数据库:oracle启动,oracle客户端工具plsql安装教程和使用方法
【4】Oracle数据库:创建表空间,创建新用户,给用户分配对象、角色和系统权限,登录新用户建表
【5】Oracle数据库:链接配置,包括sqlnet.ora里面的transnames.ora配置数据库标识符SID,listener暂时简单了解
【6】Oracle数据库:net configureation assistant工具配置监听listener,配置本地网络访问服务器上的数据库
【7】Oracle数据库:oracle字符类型、数字类型、创建表表名的命名规则
【8】Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
【9】Oracle数据库:表的关系:一对多,一对一,多对多,一一继承和修改的关系,表不是重点,重点是数据和约束关系
【10】Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
【11】Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句
【12】Oracle数据库:逻辑运算and,or,not和各种运算的优先级控制
【13】Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例
【14】Oracle数据库:oracle函数,单行函数,多行函数,upper,lower,initcap,字符串函数
【15】Oracle数据库:数字函数,日期函数,round,trunc,mod,months_between,add_months,next_day,last_day,sysdate
【16】Oracle数据库:oracle数据类型转换to_char()日期和数字转字符,to_number()字符转数字,to_date()字符转日期函数
文章目录
- Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数
- @[TOC](文章目录)
- oracle函数嵌套
- 通用函数:处理null的
- NVL函数![在这里插入图片描述](https://img-blog.csdnimg.cn/6c10b82bfd0f45aa8221a76f1d4970ed.png)
- NVL2函数
- NULLIF函数
- COALESCE函数
- 总结
oracle函数嵌套
函数从里面到外面执行
类型要返回匹配的类型哦
和java等等等等一样
SQL> select to_char(next_day(add_months(hire_date, 6), 6), 'day,mm"月",dd"日",yyyy"年"') from employees order by hire_date;TO_CHAR(NEXT_DAY(ADD_MONTHS(HIRE_DATE,6),6),'DAY,MM"月",DD"日",YYYY"年"')
----------------------------------------------------------------------
星期五,07月,20日,2001年
星期五,12月,13日,2002年
星期五,12月,13日,2002年
星期五,12月,13日,2002年
先执行
add_months(hire_date, 6)
返回一个加6个月的日期值
然后把这个日期值给算一个下一个星期5
1–7表示星期日–星期六
最后再把这个日期转化为字符串,格式还是我们说过的格式,上一篇文章说的很清楚了
通用函数:处理null的
NVL函数
有很多员工是没有佣金的
那佣金为0呗
所以佣金需要把null转为数字0
SQL> select last_name, salary, 12*salary + commission_pct from employees;LAST_NAME SALARY 12*SALARY+COMMISSION_PCT
------------------------- ---------- ------------------------
King 24000.00
Kochhar 17000.00
De Haan 17000.00
Hunold 9000.00
你看看算不了
咱可以
将null转为0
SQL> select last_name, salary, commission_pct, 12*salary, 12*salary*nvl(commission_pct, 0) from employees;LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
King 24000.00 288000 0
Kochhar 17000.00 204000 0
De Haan 17000.00 204000 0
Hunold 9000.00 108000 0
Ernst 6000.00 72000 0
Austin 4800.00 57600 0
Pataballa 4800.00 57600 0
Lorentz 4200.00 50400 0
Greenberg 12008.00 144096 0
Faviet 9000.00 108000 0
Chen 8200.00 98400 0
Sciarra 7700.00 92400 0
Urman 7800.00 93600 0
Popp 6900.00 82800 0
Raphaely 11000.00 132000 0
Khoo 3100.00 37200 0
Baida 2900.00 34800 0
Tobias 2800.00 33600 0
Himuro 2600.00 31200 0
Colmenares 2500.00 30000 0LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
Weiss 8000.00 96000 0
Fripp 8200.00 98400 0
Kaufling 7900.00 94800 0
Vollman 6500.00 78000 0
Mourgos 5800.00 69600 0
Nayer 3200.00 38400 0
Mikkilineni 2700.00 32400 0
Landry 2400.00 28800 0
Markle 2200.00 26400 0
Bissot 3300.00 39600 0
Atkinson 2800.00 33600 0
Marlow 2500.00 30000 0
Olson 2100.00 25200 0
Mallin 3300.00 39600 0
Rogers 2900.00 34800 0
Gee 2400.00 28800 0
Philtanker 2200.00 26400 0
Ladwig 3600.00 43200 0
Stiles 3200.00 38400 0
Seo 2700.00 32400 0
Patel 2500.00 30000 0LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
Rajs 3500.00 42000 0
Davies 3100.00 37200 0
Matos 2600.00 31200 0
Vargas 2500.00 30000 0
Russell 14000.00 0.40 168000 67200
Partners 13500.00 0.30 162000 48600
没有佣金的把佣金当做0,然后×年薪就这么点了
SQL> select last_name, salary, commission_pct, 12*salary + 12*salary*nvl(commission_pct, 0) as "AN_SAL" from employees;LAST_NAME SALARY COMMISSION_PCT AN_SAL
------------------------- ---------- -------------- ----------
King 24000.00 288000
Kochhar 17000.00 204000
De Haan 17000.00 204000
Hunold 9000.00 108000
Ernst 6000.00 72000
好说,上面我就实现过了
NVL2函数
return expr1?expr2:expr3
exper1为1返回expr2
否则返回expr3
SQL> select last_name, salary, commission_pct, nvl2(commission_pct, 12*salary*(1+commission_pct), 12*salary) as "AN_SAL" from employees;LAST_NAME SALARY COMMISSION_PCT AN_SAL
------------------------- ---------- -------------- ----------
King 24000.00 288000
Kochhar 17000.00 204000
De Haan 17000.00 204000
Hunold 9000.00 108000
Ernst 6000.00 72000
Austin 4800.00 57600
反正就三目呗
好说
有佣金,我们就带上佣金
没有佣金,直接返回原始的薪水
NULLIF函数
互相比较,都是null
返回null
否则返回第一个expr1,它还不能空
SQL> select first_name,length(first_name) as e1,last_name,length(last_name) as e2, nullif(length(first_name), length(last_name)) as result from employees;FIRST_NAME E1 LAST_NAME E2 RESULT
-------------------- ---------- ------------------------- ---------- ----------
Ellen 5 Abel 4 5
Sundar 6 Ande 4 6
Mozhe 5 Atkinson 8 5
David 5 Austin 6 5
Hermann 7 Baer 4 7
Shelli 6 Baida 5 6
Amit 4 Banda 5 4
Elizabeth 9 Bates 5 9
Sarah 5 Bell 4 5
David 5 Bernstein 9 5
Laura 5 Bissot 6 5
Harrison 8 Bloom 5 8
Alexis 6 Bull 4 6
Anthony 7 Cabrio 6 7
Gerald 6 Cambrault 9 6
Nanette 7 Cambrault 9 7
John 4 Chen 4
Kelly 5 Chung 5
Karen 5 Colmenares 10 5
Curtis 6 Davies 6
你瞅瞅,姓名,如果长度相等,返回就是null
否则返回firstname的长度
COALESCE函数
依次寻找,扩展了nvl2函数
返回第一个非空表达式的值
SQL> select last_name, coalesce(commission_pct, salary, 10) from employees;LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
King 24000
Kochhar 17000
De Haan 17000
Hunold 9000
Ernst 6000
Austin 4800
Pataballa 4800
Lorentz 4200
Greenberg 12008
Faviet 9000
Chen 8200
Sciarra 7700
Urman 7800
Popp 6900
Raphaely 11000
Khoo 3100
Baida 2900
Tobias 2800
Himuro 2600
Colmenares 2500LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
Weiss 8000
Fripp 8200
Kaufling 7900
Vollman 6500
Mourgos 5800
Nayer 3200
Mikkilineni 2700
Landry 2400
Markle 2200
Bissot 3300
Atkinson 2800
Marlow 2500
Olson 2100
Mallin 3300
Rogers 2900
Gee 2400
Philtanker 2200
Ladwig 3600
Stiles 3200
Seo 2700
Patel 2500LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
Rajs 3500
Davies 3100
Matos 2600
Vargas 2500
Russell 0.4
Partners 0.3
不会出现10
因为都有月薪
否咋谁去给你用爱发电呀
总结
提示:重要经验:
1)
2)学好oracle,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。
Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数相关推荐
- oracle+nvlif函数,Oracle中的NVL()、NVL2()、NULLIF()、Coalesce()函数
大家先来看看下面这道简单的题目: 1. TEST表包含两个列,TESTCOL定义为数据类型NUMBER(10),TESTCOL_2定义为数据类型VARCHAR2(10).在Oracle中发出下列语句 ...
- NVL、NVL2、NULLIF、COALESCE的区别是什么?
[DB笔试面试454] NVL.NVL2.NULLIF.COALESCE的区别是什么? NVL.NVL2.NULLIF与COALESCE都是处理当前字段值为空的时候的转换函数.以下将分别对这几个函数进 ...
- Oracle 中 nvl、nvl2、nullif、coalesce、decode 函数的用法详解
NVL(EXPR1,EXPR2) NVL2(EXPR1,EXPR2,EXPR3) NULLIF(EXPR1,EXPR2) COALESCE(EXPR1,,..,EXPRn) decode ------ ...
- oracle nvl nullif,OracleDBNVL、NVL2、NULLIF、COALESCE函数
Oracle DB NVL.NVL2.NULLIF.COALESCE函数 常规函数 下列函数可用于任何数据类型,且适合使用空值的场合: • NVL (expr1, expr2) • NVL2 (exp ...
- oracle数据库插入多表,在Oracle数据库中插入嵌套表
我是PL/SQL数据库的新学习者,这是一种给apex.oracle.com上的数据库应用指定序列的练习.然后我创建了表格,但是当填充与插入的代码如下所示,应用赋予错误,表你不介意,我需要你的帮助在Or ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- oracle判断空值的函数nvl2,Oracle nvl、nvl2、nullif、decode、case函数详解
1.NVL函数 nvl(expr1,expr2),如果expr1为空,则返回expr2: 2.NVL2函数 nvl2(expr1,expr2,expr3),如果expr1为空,则返回expr3,否则返 ...
- oracle 空值处理nvl2,Oracle学习笔记:nvl、nvl2、nullif、decode函数
一.nvl函数 功能:从两个表达式返回一个非 NULL 值. 语法: select nvl(expression1, expression2) -- 如果 expression1 计算结果为 null ...
- 不入oracle数据库,Oracle数据库之操作符及函数
一.操作符: 1.分类: 算术.比较.逻辑.集合.连接: 2.算术操作符: 执行数值计算: --工资加1000 select empno,ename,job,sal+1000 from emp; 3. ...
最新文章
- Kerberos 原理简述
- 反转字符串中的单词 III leetcode
- AMD GPU+VS2010的OpenCL配置
- Atlassian JIRA 插件开发之三 创建
- 13.程序员的自我修养---运行库实现
- 国资入局,苏宁“零售服务商”升级战略获得最强助力
- 转:使用java生成数字验证码
- 新车磨合应该从正确启动发动机开始
- android 自定义接口,Android中定义接口的用法
- 如何正确使用数据可视化图表?
- YOLOv3使用笔记
- 30个不可不知的容器技术工具和资源
- AD中更改原理图图纸大小
- 安卓接班人?Fuchsia能补上安卓硬伤吗
- css-边框(border)
- TREC Real-Time Summarization Track
- php制作明信片,photoshop简单制作一张明信片
- 一二线城市知名IT互联网公司名单
- 三句话,让Ai帮你画18万张图
- windows中通过xshell上传文件到Linux中
热门文章
- 微博营销实战4——网络舆论的监控与应对
- Android与ios的优劣深度解析!
- detached HEAD的原因及解决
- 电脑录屏怎么录制影视片段视频
- CSS position:fixed定位时 “高度坍塌” 问题的解决
- 大陆“水货”笔记本 详细资料
- Euklid.v2004
- 计算机专业中职好就业不,就业前景好的中职专业有哪些
- 种子数是123,如何用蒙特卡罗方法计算圆周率
- dcl并列控件 lisp_CAD autolisp jjj-dcl-make函数