Oracle 常见函数用法
发布时间:2020-12-12 14:05:53 所属栏目:百科 来源:网络整理
导读: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,3); 上句SQL中的decode函数的用法逻辑是这样理解的: IF(LEVER==1)
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,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 IF (BOOKNUM !=NULL) THEN RETURN BOOKNUM ELSE RETURN 0 3.NVL2函数 SELECT ID,NVL2(BOOKNUM,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',1)) AS CLASSTYPE FROM CLASS 上句SQL的SUM()函数主要是用来求和括号里表达式返回的值,或表中某个字段的总和 6.SUBSTR函数
SELECT SUBSTR(CLASSNAME,0) AS CLASSNAME,SUBSTR("今天天气是晴天!",2) FROM CLASS;上句SQL的SUBSTR()函数主要是用来截取字符串的一部分的,如SUBSTR(CLASSNAME,0)表示从第0个字节开始截取CLASSNAME字符串,SUBSTR("今天天气是晴天",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()函数主要是将数值型或日期型字段转换成字符型,方便做类似模糊查询的操作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |