NVL(EXPR1,EXPR2)
NVL2(EXPR1,EXPR2,EXPR3)
NULLIF(EXPR1,EXPR2)
COALESCE(EXPR1,,..,EXPRn)
decode --------NVL
nvl(COMMISSION_PCT,0)
--如果第一个参数为null,则返回第二个参数
--如果第一个参数为非null,则返回第一个参数 ---经典示例:计算年薪(工资+提成)
SELECT LAST_NAME,SALARY,NVL(COMMISSION_PCT,0),        (SALARY*12)+(SALARY*12*NVL(COMMISSION_PCT,0)) ANNUAL_SALARY   FROM EMPLOYEES   WHERE LAST_NAME='Matos';    --------NVL2
NVL2(COMMISSION_PCT,'SAL_COMM','SAL')
--如果第一个参数为null,则返回第三个参数
--如果第一个参数为非null,则返回第二个参数
--经典示例:
SELECT LAST_NAME,SALARY,COMMISSION_PCT,
NVL2(COMMISSION_PCT,'SAL+COMM','SAL') INCOME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (50,80); ---------NULLIF
nullif(length(first_name),length(last_name))
---如果两个参数值相等,则返回 null
---如果两个参数不等,则返回第一个表达式值 SELECT FIRST_NAME ,LENGTH(FIRST_NAME) "EXPR1",        LAST_NAME, LENGTH(LAST_NAME) "expr2",   nullif(length(first_name),length(last_name)) result
FROM EMPLOYEES; ---------COALESCE
COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)
--从左往右数,遇到第一个非null值,则返回该非null值。
--多层判断 SELECT LAST_NAME,EMPLOYEE_ID,        COALESCE(TO_CHAR(commission_pct),TO_CHAR(manager_id),   'No commission and no manager')
FROM EMPLOYEES; ---------------------------------
-----------条件表达式
IF-THEN-ELSE --CASE 语句(SQL标准,编写繁杂)
--DECODE 函数
DECODE(COL|EXPRESSION,SERACH1,RESULT1                       [,search2,result2,...,]  [,default])
--如果 search1 = expression 则返回 result1 
--如果 search2 = expression 则返回 result2
---------CASE
--示例:
SELECT LAST_NAME,JOB_ID,SALARY,        CASE JOB_ID WHEN 'IT_PROG' THEN 1.10*SALARY               WHEN 'ST_CLERK' THEN 1.15*SALARY   WHEN 'SA_REP' THEN 1.20*SALARY   ELSE SALARY END "REVISED SALARY"
FROM EMPLOYEES; ---------DECODE
--示例:
----DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。 ---  区别于SQL的其它函数,DECODE函数还能识别和操作空值。  --- 语法如下:   DECODE(control_value,value1,result1[,value2,result2…][,default_result]);  control _value  -- 试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。   value1  -----是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应   result1  ---- 是一组成序偶的结果值。   ---default_result 未能与任何一个值匹配时,函数返回的默认值。   ---示例如下:   select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual  ---------------------

Oracle 中 nvl、nvl2、nullif、coalesce、decode 函数的用法详解的更多相关文章

  1. oracle通用函数,nvl,nvl2,NULLIF ,coalesce

    Oracle 通用函数 ① NVL 函数--------将空值转换成一个已知的值: 可以使用的数据类型有日期.字符.数字. 函数的一般形式:   NVL(commission_pct,0)       ...

  2. Oracle DECODE函数的用法详解

    Oracle DECODE函数使用方法: 1.比较大小select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值sign()函数根据某个值是0. ...

  3. oracle中的exists和not exists和in用法详解

    in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. not exists:做NL,对子查询先查,有个虚表,有确定值,所以就算子查询有NULL ...

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

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

  5. oracle NVL,NVL2,NULLIF,COALESCE

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

  6. MySQL中 IFNULL、NULLIF和ISNULL函数的用法

    mysql 中 ifnull().nullif().isnull()函数的用法讲解: 一.IFNULL(expr1,expr2)用法: 假如expr1不为NULL,则 IFNULL() 的返回值为ex ...

  7. PHP截取字符串函数substr()函数实例用法详解

    在PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符.PHP对于字符串截取可以使用PHP预定义函数substr()函数来实现.下面就来介绍一下substr()函数的语法及其应用. sub ...

  8. 浅析ORACLE中NVL/NVL2/DECODE/CASE WHEN的用法

    使用NVL的时候只能对值进行是否为空的判断,基本语法是NVL( 值1, ,结果2).它的功能是如果值1为空,则此函数返回结果2,不为空的话直接输出值1(如果两个参数都为空,那么还是返回空): NVL2 ...

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

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

随机推荐

  1. Docker 空间大小设置 - 十

    一.容器启动 默认存储大小: 1.一种在启动项 docker.service 中配置. 2.在启动项配置调用的 docker-storage 配置文件中配置: 二.Docker 容器默认启动文件: / ...

  2. flash 概要分析器

    这个东东 调试用.会每毫秒一次记录正在运行的函数 及相关数据    只在调试版flash player才能用. startSampling  开始记录 getSamples  获取记录 Sample ...

  3. Coursera, Deep Learning 1, Neural Networks and Deep Learning - week4, Deep Neural Networks

    Deep Neural Network Getting your matrix dimention right 选hyper-pamameter 完全是凭经验 补充阅读: cost 函数的计算公式: ...

  4. Unsupervised Domain Adaptation Via Domain Adversarial Training For Speaker Recognition

    年域适应挑战(DAC)数据集的实验表明,所提出的方法不仅有效解决了数据集不匹配问题,而且还优于上述无监督域自适应方法.        

  5. git 重命名 origin

    git remote rename origin old-origin git remote add origin https://gitlab.com/wuxianqiang/my-project. ...

  6. HashSet、TreeSet和LinkedHashSet分别基于HashMap、TreeMap和LinkedHashMap

    1.如果你需要一个访问快速的Set,你应该使用HashSet: 当你需要一个排序的Set,你应该使用TreeSet: 当你需要记录下插入时的顺序时,你应该使用LinedHashSet. 2.因为Tre ...

  7. Javascript - ExtJs - ToolTip组件

    一个浮动的提示信息组件…… Ext,                               //可选 指定箭头的位置     anchor: 'buttom',                  ...

  8. Windows PowerShell 入門(6)-関数編1

    この連載では.Microsoftが提供している新しいシェル.Windows Power Shellの使い方を解説します.今回は.関数の作成基礎と引数.戻り値.Switchパラメータについて説明します. ...

  9. 【转】Java并发编程:synchronized

    一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的资源:一个变量.一个对象.一个文件.一个数据库表等,而 ...

  10. ES--01

    ES概念: 垂直搜索(站内搜索) 什么是全文检索和Lucene? 1 全文检索 倒排索引 2 Lucene 就是一个jar包 里面包含了封装好的各种简历倒排索引 以及进行搜索的代码 包括各种算法 我们 ...