Oracle单行函数笔记

时间:2021-12-30 13:33:14

Oracle中单行函数的分类:
1.字符函数
substr():字符串截取
select substr('我爱你,你知道么?',0,4) from dual
执行结果:我爱你,
length函数:字符串长度
select length('我爱你,你知道么?') from dual
执行结果:9
Replace()函数:替换指定字符
select replace('我爱你,你知道么?','你','的是他') from dual
执行结果:我爱的是他,的是他知道么?
upper函数:转字母大写
select upper('hello') from dual;
执行结果:HELLO
lower函数:字母转小写
select lower('HELLO') from dual;
执行结果:hello
initcap函数:首字母大写
select initcap('HELLO') from dual;
执行结果:Hello
2.数值函数:
round函数:四舍五入
select round(789.021,2) from dual;
执行结果:789.02
trunc函数:截取小数位(默认保留整数位)
select round(789.029,2) from dual;
执行结果:789.02
mod函数:求余函数(第二位不能为0)
select mod(10,3) from dual;
执行结果:1
3.日期函数:
日期 - 数字 = 日期;
日期 + 数字 = 日期;
日期 - 日期 = 数字(表示天数);
months_between() ---- 求出指定范围的月数,如:
SELECT empno, ename, round(months_between(sysdate, hiredate)) FROM emp ;
add_months() --- 在指定的日期上加上指定的月数,如:
SELECT add_months(sysdate, 3) FROM dual;
next_day() ----  求取和本周星期数相同的下周的星期数是几号,如:
SELECT last_day(sysdate, '星期日') FROM dual;
last_day() --- 求取本月的最后一天是几号,如:
SELECT last_day(sysdate) FROM dual;
4.转换函数:
to_char函数:转换为字符串
select to_char(sysdate,'yyyy'),to_char(sysdate,'MM'),to_char(sysdate,'dd') from dual;
执行结果:2014  07  03
to_number函数:转换为number
select to_number('123')+to_number('123') from dual;
执行结果:246
to_date函数:转换为日期函数
select to_date('2012-03-14','yyyy-mm-dd') from dual
执行后转换为oracle内置日期比如2012/03/14
5.通用函数:
nvl函数: 函数用于把一个变化的值设置另一个默认值
select nvl(num,'') from user  //如果num为null赋值为0
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
类似ifelse逐行判断
select decode(1,2,'内容为2',1,'内容为1') from dual;
执行结果为:内容为1