Oracle的SQL函数
分类:
1、单行函数:每一行只返回一个值,可以出现在 SELECT 子句中和 WHERE 子句中,常见的函数有:日期函数、数字函数、字符函数、转换函数、其他函数
2、分组函数:根据分组的情况,返回每组里的一个结果值,可以在使用 ORDER BY 和HAVING 子句中使用
3、分析函数:分析函数根据一组行来计算聚合值,分析函数为每组记录返回多个行
转换函数
TO_CHAR()函数
SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS')
FROM dual;
SELECT to_char(1210.7, '$9,999.00') FROM dual;
TO_DATE()函数
SELECT to_date('2013-07-13' , 'yyyy-mm-dd') FROM dual;
TO_NUMBER()函数
SELECT SQRT(to_number('100')) FROM dual;
其他函数-单行函数
分析函数 RANK() DENSE_RANK() ROW_NUMBER()
SELECT ename, deptno, sal,
--按照每个部门分组,对薪水从大到小排序,每个部门序号从 1 开始,同一个部门相同薪水序号相同,
--且和下一条不同记录的排名之间空出排名 1 1 3 3 5 6
RANK( ) OVER (PARTITION BY deptno ORDER BY sal DESC) "RANK",
--按照每个部门分组,对薪水从大到小排序,每个部门序号从 1 开始,同一个部门相同薪水序号相同,
--且和下一条不同记录的排名之间不空出排名 1 1 2 3 3 4
DENSE_RANK( ) OVER (PARTITION BY deptno ORDER BY sal DESC) "DENSE_RANK",
--按照每个部门分组,对薪水从大到小排序,每个部门序号从 1 开始,同一个部门相同薪水序号继续
--递增,顺序排名 1 2 3 4 5 6
ROW_NUMBER( ) OVER (PARTITION BY deptno ORDER BY sal DESC) "ROW_NUMBER"
FROM emp;
-- 不分组的的分析函数 查询 emp 表中所有的工资排名
SELECT ename, sal, RANK( ) OVER (order by sal desc) "RANK" from emp
更多Oracle相关知识请关注我哦,猛戳主页,啾咪,谢谢!