Oracle:plsql常用函数汇总
1.在sqlplus下,实现中-英字符集转换
alter session set nls_language='american'; alter session set nls_language='simplified chinese';
2.运算符
算术运算符:+-*/
连接运算符:||
比较运算符:>,>=,=,!=,<,<=
逻辑运算符:not,and,or
集合运算符:intersect ,union,union all, minus(对应集合的列数和数据类型相同,union不包括重复行,union all包括重复行)
3.日期函数
1)add_months:日期加减日期后的日期
2)last_day:该月最后一天的日期
3)months_between:日期之间的月份
4)next_day(date,char):返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
5)round:舍入到最接近的日期(round(参数,'day'):day:舍入到最接近的星期日)
6)trunc:截断到最接近的日期
7)greatest:返回值列表的最大值,若是日期,则返回最晚值
8)least:返回值列表的最小值,若是日期,则返回最早值
4.字符函数
1)substr:截取字符串
select substr('serqewrgret',1,3)substrs from dual;
2)||,wm_concat(),concat:连接字符
3)decode:选择函数
4)length:计算列中数据的长度
5)replace:替换函数
select replace('abc','b','xy') from dual;
6)ltrim、rtrim、trim:去掉字符串中的空格
select ltrim(' a') s1, rtrim('b ') s2, trim(' c ') s3 from dual;
7)去掉前导和后缀
select trim(leading 9 from 9998767999) s1, trim(trailing 9 from 9998767999) s2, trim(9 from 9998767999) s3 from dual;
8)lower:小写,upper:转大写,initcap:首字母转大写
select lower('hha') s1, upper('hhei') s2, initcap('hhehe') s3 from dual;
9)translate:替换掉需要替换的字符,一个替换一个……
select translate('abc','b','a3') from dual;10)lpad(左填充),rpad(右填充):填充
select lpad('a',6,'!') s1, rpad('b',6,'=') s2 from dual;
11)nvl(x1,x2):x1为空,则显示为x2的值,否则就是x1
12)nvl2(x,x1,x2):x不为空,则显示为x1,否则显示为x2
13)nullif(x1,x2):若x1的值与x2的值相等,则返回为空,否则返回x1
14)coalesce(表达式1,表达式2,表达式3,表达式4,……,表达式n):返回第一个不为空的表达式
select ename,coalesce(sal,100),sal,comm from emp;
5.数字函数
1)保留小数位:round四舍五入,trunc直接截断
select round(874.96,2) s1,trunc(874.9412,2) s2 from dual;
2)取整:ceil向上取整,floor向下取整
select ceil(2087.2) s1, floor(2087.2) s2 from dual;3)power:取幂,sqrt:平方根
select power(3,2) s1,sqrt(9) s2 from dual;4)求余
select mod(1,2) from dual;5)sign:返回值的符号(正数返回为1,负数为-1)
select sign(-30),sign(30) from dual;
6.分组函数
min,max,avg,count,sum
1)group by 和having
例:部门56的最高工资,最低工资,平均工资,总人数,有工作的人数,工种数量及工资总和
select deptno, max(ename), max(sal), min(ename), min(sal), avg(sal), count(*), count(job), count(distinct(job)), sum(sal) from emp group by deptno having deptno = 56;
2)stddev:返回一组值的标准偏差
select x,stddev(y) from xx group by x;
3)variance:返回一组值的方差
select x,variance(y) from xx group by x;
4)rollup:按分组的第一个列进行统计和最后的小计
select x,y,sum(z) from emp group by x,y; select x,y,sum(z) from emp group by rollup(x,y);
5)cube:按分组的所有的列进行统计和最后的小计
select x,y,sum(z) from emp group by cube(x,y);
7.聚合函数/排序函数+over(partition by column order by column)
常见的有:
row_number() over(partition by … order by …) rank() over(partition by … order by …) dense_rank() over(partition by … order by …) count() over(partition by … order by …) max() over(partition by … order by …) min() over(partition by … order by …) sum() over(partition by … order by …) avg() over(partition by … order by …) first_value() over(partition by … order by …) last_value() over(partition by … order by …) lag() over(partition by … order by …) lead() over(partition by … order by …)
8.其他
1)user:返回登录的用户名
select user from dual;
2)vsize:返回表达式所需的字节数
select vsize('i am xx;') from dual; --8
上一篇: orderby用多个条件进行排序的方法