`

Decode与NVL和NVL2区别

阅读更多

Decode

decode(条件,值1,翻译值1,值2,翻译值2,...,缺省值)    该函数与程序中的 If...else if...else 意义一样

NVL

格式:NVL( string1, replace_with)

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。

select nvl(sum(t.dwxhl),1) from tb_jhde t  就表示如果sum(t.dwxhl) = NULL 就返回 1

Oracle在NVL函数的功能上扩展,提供了NVL2函数

NVL2

nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2

结合Decode 和 NVL等函数 常常结合使用,例如

select monthid,decode(nvl(sale,6000),6000,'NG','OK') from output

扩展知识

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1,

如果取较小值就是select

monthid,decode(sign(sale-6000),-1,sale,6000) from output,即达到取较小值的目的。

分享到:
评论

相关推荐

    SQL语句的DECODE和NVL

    SQL语句的DECODE和NVL,肯定能帮到你,好用!

    oracle中nvl、decode、trim、rtrim的常见用法

    列举oracle中nvl、decode、trim、rtrim的常见用法

    Oracle-Decode()函数和CASE语句的比较

    本文讲述了Oracle-Decode()函数和CASE语句的比较。

    常用的SQL函数详细讲解

    字符函数 数值函数 日期函数 数据转换函数 decode函数 nvl函数

    DB2、ORACLE SQL写法的主要区别

    DB2、ORACLE SQL写法的主要区别 ...2、Where条件弱类型判断 3、replace关键字 4、子查询别名 5、DATE数据类型的区别 6、分页的处理 7、decode函数 8、NVL函数 9、substr的不同 10、获取操作系统当前日期

    查找oracle锁定脚本

    查找oracle锁定脚本 select nvl(S.USERNAME,'Internal') username, nvl(S.TERMINAL,'None') ...and T1.OBJ# = decode(L.ID2,0,L.ID1,L.ID2) and U1.USER# = T1.OWNER# and S.TYPE != 'BACKGROUND' order by 1,2,5

    oracle-10G函数大全.chm

    1,数值型函数(abs()、sign()、ceil()、floor()、power()、exp()、round()...); 2,字符型函数(lower()、upper()、lpad()、rpad()、substr()、replace()...);...7,其它函数(decode()、nvl()、nvl2()、least()...);

    Oracle_Database_11g完全参考手册.part2/3

    9.3.1 3SIN、SINH、COS、COSH、TAN、TANH、ACOS、ATAN、ATAN2和ASIN 9.4 聚集函数 9.4.1 组值函数中的NULL 9.4.2 单值函数和组值函数的示例 9.4.3 AVG、COUNT、MAX、MIM和SUM 9.4.4 组值函数和单值函数的组合 9.4.5 ...

    Oracle中检查外键是否有索引的SQL脚本分享

    代码如下: COLUMN COLUMNS format a30 word_wrapped COLUMN tablename format a15 word_wrapped ... CNAME1 || NVL2(CNAME2, ‘,’ || CNAME2, NULL) ||  NVL2(CNAME3, ‘,’ || CNAME3, NULL) ||  NVL2(CNAME4,

    oracle使用管理笔记(一些经验的总结)

    Ⅰ.oracle itcast 1 1.oralce解锁步骤 2 2.oralce开发工具 3 3.oracle常用sql plus命令 4 4.oracle用户管理 5 (1)权限 5 (2)角色 5 (3)方案(schema) 5 (4)用户管理的综合案例 7 ...(2)数学函数 26 ...(12)nvl 77

    orcale常用命令

    读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, ...

    Oracle_Database_11g完全参考手册.part3/3

    9.3.1 3SIN、SINH、COS、COSH、TAN、TANH、ACOS、ATAN、ATAN2和ASIN 9.4 聚集函数 9.4.1 组值函数中的NULL 9.4.2 单值函数和组值函数的示例 9.4.3 AVG、COUNT、MAX、MIM和SUM 9.4.4 组值函数和单值函数的组合 9.4.5 ...

    please help me

    1 and operation_type = DECODE(1, 4, 1, 1)) ) AND ( ('' = 2 AND process_op_seq_id = '')OR ('' = 3 and line_op_seq_id = '') OR ('' is null) ) and ( 1 = 1 or (1 = 2 and ...

    最全的oracle常用命令大全.txt

    一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭...

    SQL培训第一期

    select decode(x,1,'x is 1', 2 , 'x is 2','others') from dual 1.8.3.2 说明 当x等于1时,则返回‘x is 1’,当x等于2时,则返回‘x is 2’,否则,返回‘others’。 1.8.4 nulls first(nulls last)排序 1.8.4.1...

    Oracle8i_9i数据库基础

    §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介 32 §1.5.1 登录到SQL*PLUS 32 §...

Global site tag (gtag.js) - Google Analytics