oracle if 使用函数,Oracle 常见函数用法

本文详细介绍了SQL中的多种常用函数,包括DECODE、NVL、NVL2、NULLIF、SUM、SUBSTR和TO_CHAR等,解释了这些函数的功能及应用场景,并通过实例展示了如何使用这些函数进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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()函数主要是将数值型或日期型字段转换成字符型,方便做类似模糊查询的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值