oracle 中的几个常用函数

 

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

4、case…when…简单用法

Case具有两种格式。简单Case函数和Case搜索函数。         

   --简单Case函数

  CASE sex

        WHEN '1' THEN '男'

        WHEN '2' THEN '女'

  ELSE '其他' END

  --Case搜索函数

  CASE WHEN sex = '1' THEN '男'   

     WHEN sex = '2' THEN '女'     

  ELSE '其他' END     

这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。    


    

 

posted @ 2014-10-14 14:22  网络小爬虫  阅读(710)  评论(0编辑  收藏  举报