码迷,mamicode.com
首页 > 数据库 > 详细

oracle 中的decode,sign,和nvl

时间:2014-10-14 17:15:48      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:style   io   os   使用   ar   for   sp   art   on   

 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的本来的值全部都是空值的

oracle 中的decode,sign,和nvl

标签:style   io   os   使用   ar   for   sp   art   on   

原文地址:http://www.cnblogs.com/WebcrawlerBlog/p/4024343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!