oracle 中的decode,sign,和nvl

 1、decode 常见的用法 :

  decode(condition , value1,result1[, value2, result2],default_result)

  decode其实相当于一个if 条件 函数 condition 相当于一个输入的值 ,而value i则是参数列表,若输入的值为value1,则对应的返回结果为result1.

  如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值default_result。

  decode不同于其他SQL函数,decode函数可以识别和操作空值。

  下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。

  SELECT checkup_type,

  DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)

  FROM checkup;

decode 也可以使用嵌套的方式来进行多个值得选择:

例如一个员工的出勤:可能会出现四种状态:公出,请假,出勤,休息。其中‘公出’是在‘请假’记录中包含的,“出勤”和“休息”是一个字段的两个状态。

如:decode(business_out , Y, "公出", decode(leave, Y,"请假" ,decode(attend,Y,“出勤”,N,“休息”)));

  2、sign 常见用法:

  函数语法:

  sign(n)

  函数说明:

  取数字n的符号,大于0返回1,小于0返回-1,等于0返回0

  示例:

  一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;

  SIGN(100) SIGN(-100) SIGN(0)

  ———- ———- ———-

  1 -1 0

  二、a=10,b=20

  则sign(a-b)返回-1

  3、nvl 作用

  ?1.NVL函数

  NVL函数的格式如下:NVL(expr1,expr2)

  含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

  例如:

  SQL> select ename,NVL(comm, -1) from emp;

  ENAME NVL(COMM,-1)

  ------- ----

  SMITH -1

  ALLEN 300

  WARD 500

  JONES -1

  MARTIN 1400

  BLAKE -1

  FORD -1

  MILLER -1

  其中显示-1的本来的值全部都是空值的

时间: 2024-08-07 05:21:59

oracle 中的decode,sign,和nvl的相关文章

问题:oracle decode;结果:oracle中的decode的使用

oracle中的decode的使用 Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字

oracle中的DECODE

原文:oracle中的DECODE DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值.区别于SQL的其它函数,DECODE函数还能识别和操作空值. 其具体的语法格式如下: DECODE(input_value,value,result[,value,result…][,default_result]); 其中: in

Oracle中INSTR、SUBSTR和NVL的用法

Oracle中INSTR.SUBSTR和NVL的用法 INSTR用法:INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 默认查找顺序为从左到右.当起始位置为负数的时候,从右边开始查找.若起始位置为0,返回值为0. SELECT INSTR('CORPORATE FLOOR', 'OR', 0, 1) FROM DUAL; 返回值为0 SELECT INSTR('CORPORATE FLOOR', 'OR', 2, 1)

Oracle中的 Decode和nvl 函数的用法及区别?

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函数进行类型转换.

oracle中的decode的使用

原文链接:http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值

Oracle 中的 decode

含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当然值1,值2,值3也可以

oracle中的decode的使用(转)

地址:http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,

数据库ORACLE中函数decode的用法

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值sign()函数根据某个值是0.正数还是负数,分别返回0.1.-1例如:变量1=10,变量2=20则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的. 列: 有学生成绩表student,现在要用decode函数实现以下几个功能:成绩>85,显示优秀:>70显示良好:>6

Oracle中的decode()函数

一.decode()函数 1.语法 DECODE(control_value,value1,result1[,value2,result2-][,default_result]); control _value :试图处理的数值.DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值. value1:是一组成序偶的数值.如果输入数值与之匹配成功,则相应的结果将被返回.对应一个空的返回值,可以使用关键字NULL于之对应. result1:是一组成序偶的结果值. default_resul