Oracle 通用函数 
① 
NVL 函数--------将空值转换成一个已知的值:

可以使用的数据类型有日期、字符、数字。

函数的一般形式:  
  NVL(commission_pct,0)           
  NVL(hire_date,'01-JAN-97')

  NVL(job_id,'No Job Yet')

(注意select 原数据类型是number  对返回值要求也是number  其他同理)?

求年薪

select employee_id,
nvl(commission_pct,0) ,
   salary*12 ,
salary*12*(1+nvl(commission_pct,0)) as "annual salary"--------------(commission_pct 有的没有)   from employees

练习2:输出last_name,department_id,当department_id为null时,显示‘没有部门’。-----------当时没思路 

select employee_id
,nvl(to_char(department_id),'没有部门') ----------------------------后面没法转 转前面
from employees

 

2. 使用 NVL2 函数 
格式:NVL2 (expr1, expr2, expr3) : expr1不为NULL,返回expr2;为NULL,返回expr3。

练习:查询员工的奖金率,若为空,返回0.01,若不为空,返回实际奖金率+0.015

select  last_name
,commission_pct
,nvl2(commission_pct,commission_pct+0.05,0.01) from employees

3. 使用 NULLIF 函数 
 
NULLIF (expr1, expr2) :  相等返回NULL,不等返回expr1  
 
练习 当 first_name长度等于last_name长度 返回null 否则返回 first_name

select   length(first_name) ,
length(last_name),
nullif(length(first_name),
length(last_name))
from employees

4. 使用 COALESCE 函数

更具有一般性   coalesce()的参数是可变参数。 参数要求2个以上都行。。

样式: 
①coalese(参数1,参数2)  ---------------当第一个参数为为null的时候  判断第二参数  若第二个也为空 返回空 
②coalese(参数1,参数2,参数3) ---------------第一个为空判断第二个,第二个为空判断第三个,第三个为空返回null

COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。 

如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE  
 
练习 判断commission_pct 是否为null

  ①否 commission_pct

  ②是  判断salary是否为null

     ①否  就打印工资

     ②是  就打印 10

 select   first_name ,
commission_pct ,
salary,
coalesce(commission_pct,salary,100)
from employees
  order by commission_pct

oracle通用函数,nvl,nvl2,NULLIF ,coalesce的更多相关文章

  1. oracle几个函数整理 DECODE() NVL NVL2 NULLIF Coalesce(转)

    DECODE() decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值 ...

  2. oracle NVL,NVL2,NULLIF,COALESCE

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

  3. NVL函数(NVL,NVL2,NULLIF,COALESCE)

    NVL 语法:NVL( expr1, expr2) 功能:如果expr1为NULL,则NVL函数返回expr2的值,否则返回expr1的值,如果两个参数的都为NULL ,则返回NULL. 注意事项:e ...

  4. 函数nvl,nvl2,nullif,coalesce

    NVL: Converts a null value to an actual valueNVL2:If expr1 is not null, NVL2 returns expr2. If expr1 ...

  5. oracle函数nvl, nvl2, nullif

    nvl函数 语法: NVL(表达式1, 表达式2) select nvl(s.name, '未填写') from student s 如果表达式1的值为空, 则显示第二个值, 否则显示原来的值, nv ...

  6. oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO

    干oracle 047文章12当问题,经验group by 声明.因此邂逅group by  rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPOR ...

  7. oracle函数nvl,nvl2的区别,nullif函数,coalesce函数

    在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数.也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致. 1)nvl()函数 SQL> sele ...

  8. oracle之nvl,nvl2,decode

    oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返 ...

  9. SQL Fundamentals || Single-Row Functions || 通用函数 General function || (NVL,NVL2,NULLIF,DECODE,CASE,COALESCE)

    SQL Fundamentals || Oracle SQL语言 SQL Fundamentals: Using Single-Row Functions to Customize Output使用单 ...

随机推荐

  1. Activity堆栈管理

    task就好像是能包含很多activity的栈. 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个activity压入第一个 ac ...

  2. 安卓TV开发(五) 移动智能终端UI之实现主流TV焦点可控UI

      载请标明出处:http://blog.csdn.net/sk719887916,作者:skay    由于其他网站收录,导致你无法查看本系列原创文章请点击此处 安卓TV开发(四)实现主流智能T ...

  3. sharedpreferences如何保存对象

    昨天做了一个搜索历史的功能,然后根据搜索的历史可以调回到上一个页面,这里涉及到一个用sharedpreferences保存对象的问题,sharedpreferences是不能够直接保存对象的,我们需要 ...

  4. SpriteBuilder中本地化的局限性

    最后,App中的(图片)logo仍然保留在英语格式. 未来SpriteBuilder将计划支持本地化资源文件,但是写作该篇的时候估计还没有实现. 你现在必须使用正规的iOS app的国际化技术来支持本 ...

  5. iOS真机调试步骤(Xcode8.0以上版本)(2015年)

    方法/步骤(转载:http://jingyan.baidu.com/article/22fe7ced20cc073002617f97.html) 获取真机调试的证书,先在本地生成获取证书的文件,找不到 ...

  6. 第十八篇 ANDROID的声音管理系统及服务

     声音管理系统用来实现声音的输入和输出.声音的控制和路由等功能,包括主和各种音源的音量调节.声音焦点控制,声音外设的检测和状态管理,声音源输入和输出的策略管理.音效的播放.音轨设置和播放.录音设置 ...

  7. kettle 的表输出 table output

    kettle的表输出: 双击后,看设置, 1,在connecttion后面,点击new里新建一个.设定各个选项值,如选择mysql类型,则配置hostname,database name,端口, 用户 ...

  8. HDFS APPEND性能测试

    hbase在写入数据之前会先写hlog,hlog目前是sequencefile格式,采用append的方式往里追加数据.之前团队的同学测试关闭hlog会一定程序上提升写hbase的稳定性.而在我之前的 ...

  9. SharePoint 读取选项字段所有Choise

    对象模型SPFieldChoice SPSite site = SPContext.Current.Site; SPWeb web = site.OpenWeb(SubWebUrl); SPList ...

  10. SharePoint 2010 电子书下载网站推荐

    最近一直搜集SharePoint2010的资料,偶尔发现一个网站还不错,推荐给大家,皮皮书屋http://www.ppurl.com/tag/sharepoint,里面有很多SharePoint201 ...