首页 » Java » Oracle 常见函数用法

Oracle 常见函数用法

原文 http://blog.csdn.net/linhaiyun_ytdx/article/details/79253621

2018-02-05 02:00:20阅读(321)

 1.decode函数

SELECT ID,NAME,DECODE(LEVER,1,'教授',2,'副教授',3,'导师','讲师') POSITION,
(SELECT CLASSNUM FROM CLASS T WHERE T.NUM = S.NUM) NUM FROM TEACHER S WHERE T.LEVER IN (1,2,3);

上句SQL中的decode函数的用法逻辑是这样理解的:

IF(LEVER==1) THEN
          RETURN '教授'(翻译值1)
ELSE IF(LEVER==2) THEN
          RETURN '副教授'(翻译值2)
ELSE IF(LEVER==3) THEN
          RETURN '导师'
ELSE 
          RETURN '讲师'(默认值)

其中,默认值可有可无


2.NVL函数

SELECT ID,PERSONNAME,NVL(BOOKNUM,0) AS BOOKNUM,NVL(PERSONNUM,0) AS PERSONNUM FROM BOOKSTORE


上句SQL的NVL()函数可以这样理解:

IF (BOOKNUM !=NULL) THEN 
          RETURN BOOKNUM
ELSE
          RETURN 0

3.NVL2函数
SELECT ID,PERSONNAME,NVL2(BOOKNUM,BOOKNUM,0) AS BOOKNUM,NVL2(PERSONNUM,PERSONNUM,0) AS PERSONNUM FROM BOOKSTORE

上句SQL的NVL2()函数可以这样理解

IF (BOOKNUM !=NULL) THEN 
          RETURN BOOKNAME
ELSE IF(BOOKNUM == NULL)
          RETURN 0

值得注意的是,BOOKNAME和0类型不同的话,0会转换成BOOKNAME的类型,转换不了,则会报错


4.NULLIF函数

SELECT E.NAME,E.JOB_ID,J.JOB_ID,NULLIF(E.JOB_ID,J.JOB_ID) AS SAME FROM EMPLOYEES E,JOB_HISTORY J 
   WHERE E.EMPLOYEE_ID = J.EMPLOYEE_ID ORDER BY NAME;

上句SQL的NULLIF()函数可以这样理解

IF(E.JOB_ID == J.JOB_ID) THEN 
           RETURN NULL
ELSE
           RETURN E.JOB_ID

5.SUM函数

SELECT ID ,CLASSNAME,SUM(NVL(RESULTS,0)) AS RESULTS,SUM(DECODE(TYPE,'50',0,1)) AS CLASSTYPE FROM CLASS

上句SQL的SUM()函数主要是用来求和括号里表达式返回的值,或表中某个字段的总和

6.SUBSTR函数

SELECT SUBSTR(CLASSNAME,0) AS CLASSNAME ,SUBSTR("今天天气是晴天!",3,2) FROM CLASS;
 上句SQL的SUBSTR()函数主要是用来截取字符串的一部分的,如SUBSTR(CLASSNAME,0)表示从第0个字节开始截取CLASSNAME字符串,SUBSTR("今天天气是晴天",3,2)表示从第三个字节开始截取"今天天气是晴天"中的两个字节,结果是"天气".

7.TO_CHAR函数

SELECT S.ID,S.NAME,TO_CHAR(S.TIME,'yyyy-mm-dd hh24:mi:ss'),TO_CHAR(S.MONEY,'999') AS MONEY
    FROM STUDENT S
上句SQL的SUBSTR()函数主要是将数值型或日期型字段转换成字符型,方便做类似模糊查询的操作


最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹