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. 数据库设计理论与实践·<一>总结

    一.数据库生命周期 数据库生命周期流程图如下: 二.各阶段附图 附图1.1 数据流图 附图1.2 数据字典-方式1 补充说明:数据字典既可以单张表格表示,也可以多种(数据项表/数据结构表/数据流表/外 ...

  2. Git学习之忽略特殊文件.gitignore的配置

    1.Mac中使用Git上传项目代码时忽略.DS_Store文件 简单的说Mac每个目录都会有个文件叫.DS_Store,它是用于存储当前文件夹的一些Meta信息.所以每次查看Git目录的状态,如果没有 ...

  3. 使用Python的turtle库画圣诞树

    代码如下: from turtle import * import random import time n = 80.0 speed("fastest") screensize( ...

  4. 第20月第4天 pycharm utf-8

    1.运行python %run a.py 运行 https://blog.csdn.net/little_bobo/article/details/78982412 2.UnicodeDecodeEr ...

  5. python之字符串常用的方法

    1. 去掉空格或换行符 s='. hello .world .\n' new_s = s.strip()#默认去掉字符串前后的空格和换行符 new_s = s.strip('.')#可传参去掉字符串前 ...

  6. t-sql对被除数为0&除数小于被除数结果为0&除法保留2位小数的处理

    SELECT round(CAST(12 AS FLOAT)/nullif(13,0),2,1) FROM TB

  7. C hashtable小例子

    参考链接:     http://blog.csdn.net/qinpanke/article/details/9171541

  8. day 9 - 1 函数

    函数 函数:定义了之后,可以在任何需要它的地方调用 函数模拟 len() 方法 #len() 方法的使用 s="世界上唯一不变的就是变化" print(len(s)) #下面是我们 ...

  9. Android逆向基础----APK文件结构

    参考这个博客 http://www.cnblogs.com/wangtianxj/archive/2010/06/13/1757639.html http://blog.csdn.net/bupt07 ...

  10. python - 爬虫入门练习 爬取链家网二手房信息

    import requests from bs4 import BeautifulSoup import sqlite3 conn = sqlite3.connect("test.db&qu ...