Oracle单行函数

单行函数指的是对单行进行计算,也就是说会对结果集中每一条记 录计算一次,每一条记录返回一个结果,可以转换类型,也可以嵌套,参数可以是一列或一个值,单行函数包含五类:字符函数、数值函数、日期函数、转换函数和通用函数,单行函数是可以嵌套的,嵌套函数的执行是由内到外

  1. 字符函数
    字符函数分为大小写控制函数(LOWER全小写、UPPER全大写、INTCAP首字符大写)和字符控制函数(CONCAT、SUBSTR、LENGTH、INSTR、LPAD | RPAD、TRIM、REPLACE)
    1) 大小写控制
    例:把’My lover Only You’转换成全小写,全大写和首字符大写的形式
    select lower(’ My lover Only You’) , upper(’ My lover Only You’), initcap(’ My lover Only You’) from dual;
    在这里插入图片描述
    2) 字符控制函数
    Concat连接字符串
    例:把’My lover '和’Only You’连接起来
    select concat('My lover ',‘Only You’) from dual;
    在这里插入图片描述

Substr截取字符串(把源字符串中从第x位开始,截取y个字符,如果不写y,默认截取到字符串的末尾)
例:把’My lover Only You’从倒数第三位开始截取一个字符
select substr(‘Hi, I am TOM, I am 15 years old, I Love YOU’, -3,1) from dual;
在这里插入图片描述

Length读取字符串长度
例:select length(‘My lover Only You’) from dual;
在这里插入图片描述

Instr读取字符串位置(返回子串在源字符串中从第x个字符开始,第y次出现的位置,xy默认值都 是1)
例:字符串’My lover Only You’第二位开始,第一次出现’y’的位置
select instr(‘My lover Only You’,‘y’,2,2) from dual;
在这里插入图片描述

Lpad和Rpad从左和从右补充字符串(补充的是补充完后字符串的总长度,而不是补充多少个字符)
例:将I Love You的左右分别用填充到25个字符
select lpad(‘My lover Only You’, 25, '
’), rpad(‘I Love You’, 25, ‘*’) from dual;
在这里插入图片描述

Trim(leading|trailing|both):截去源字符串头|尾|头尾的字符,默认是both,头尾都截
select trim('l’from ‘lover’) from dual;
在这里插入图片描述

Replace替换字符串
例:将’My lover Only You’中的’lover’替换成’Lover’
select replace(‘My lover Only You’, ‘lover’, ‘Lover’) from dual;
在这里插入图片描述
2. 数字函数
1) Round:将数字截取到小数点x位,x默认是0
例:select round(932.34,1) from dual; 四舍五入到小数点后一位 ——>932.3
select round(932.34,-1) from dual; 四舍五入到小数点前一位 ——>932

2)Trunc:将数字截取到小数点x位,x默认是0
例:select trunc(932.34,1) from dual; 截取到小数点后一位 ——>932.3
select trunc(932.34,-3) from dual; 截取到小数点前三位 ——>9

3)Mod:计算x除以y后的余数
例:select mod(1300,400) from dual; ——>1300除以400=3*400+100,所以余数为100

4)Abs:取绝对值
例:select abs(-3344) from dual; ——>取-3344的绝对值为3344

3.日期函数
1)Sysdate:返回当前系统的时间
2)Months_between:返回俩个日期之间相差的月数
3)Add_months:在指定日期基础上加上相对应的月数,如果给定的日期是一个月的最后一天的话,加上对应月数,结果也是那个月的最后一 天
4)Next_day::返回给定日期后一周之内的下一个星期X的日期,注意是下一个星期几,不是下个星期几,比如今天星期三,next_day星期四就是明天
5)Last_day:返回指定日期当月最后一天的日期
6)Round: 对给定日期进行四舍五入
7)Trunc:对给定进日期行截断
8)Extract:从指定日期中抽取年月日的信息

4.转换函数
数据类型的转换分俩种,显性和隐性,但是由于隐性可读性差,代码的效率差,所以不建议使用隐性,显性To_char:将日期或数字转换成字符,可以包含任意的有效日期格式,但是必须包含在单引号中而且大小写敏感,且日期之间用逗号隔开

5.通用函数
通用函数包括NVL,NVL2,NULLIF,CONALESCE,这些函数适用于任何数据类型,同时也适用于空值
1)NVL (expr1, expr2):两个参数的数据类型要一致。对第一个参数进行判断,如果为空,则返回第二个参数的值,如果不为空,返回第一个参数
2)NVL2 (expr1, expr2, expr3):第一个参数进行判断,如果第一个参数不为空的话,则返回第二个参数的值,如果为空的话,返回第三参数的值
3)NULLIF(expr1, expr2):函数主要是完成两个参数的比较。当两个参数不相等时,返回值是第一个参数值;当两个参数相等时,返回值是空值
4)Coalesce(expr1, expr2, …, exprn):参数的数量没有限制,COALESCE与 NVL相比的优点在于 COALESCE可以同时处理交替的多个值,如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE
在SQL语句中使IF-THEN-ELSE逻辑有俩种方法,Case表达式和Decode函数,Case:作条件分支的判断使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值