Oracle 一些实用的函数
2017-12-06 11:51
204 查看
最近在用Oralce写查询 遇到了一些有用的函数 先总结些 再慢慢补充
1. sum() over()
sum(sal) over (partition by deptno order by ename) 按部门“连续”求总和
sum(sal) over (partition by deptno) 按部门求总和
sum(sal) over (order by deptno,ename) 不按部门“连续”求总和
sum(sal) over () 不按部门,求所有员工总和,效果等同于sum(sal)。
2.REGEXP_INSTR()
6个参数
第一个是输入的字符串
第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
第六个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值。如果没有找到匹配,则函数返回0。
注:
ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同
LISTAGG(measure_expr,delimiter)
WITHIN GROUP( order by order_by_clause ) OVER
(partition by nation)
即在每个分组内,LISTAGG根据order by子句对列植进行排序,将排序后的结果拼接起来。
measure_expr:可以是任何基于列的表达式。
delimiter:分隔符,默认为NUL
order_by_clause:order by子句决定了列值被拼接的顺序。
4.Oracle 中文转拼音FN_GETPY()
SQL> select fn_getpy('具隽帆') from dual;
jujuanfan
SQL> select fn_getpy('具隽帆',1) from dual;
JUJUANFAN
SQL> select fn_getpy('具隽帆',2) from dual;
JuJuanFan
SQL> select fn_getpy('具隽帆',3) from dual;
jjf
SQL> select fn_getpy('具隽帆',4) from dual;
jujuanfan
1. sum() over()
sum(sal) over (partition by deptno order by ename) 按部门“连续”求总和
sum(sal) over (partition by deptno) 按部门求总和
sum(sal) over (order by deptno,ename) 不按部门“连续”求总和
sum(sal) over () 不按部门,求所有员工总和,效果等同于sum(sal)。
2.REGEXP_INSTR()
6个参数
第一个是输入的字符串
第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
第六个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值。如果没有找到匹配,则函数返回0。
注:
ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同
3.Oracle列转行函数listagg()
这是最基础的用法:LISTAGG(measure_expr,delimiter)
WITHIN GROUP( order by order_by_clause ) OVER
(partition by nation)
即在每个分组内,LISTAGG根据order by子句对列植进行排序,将排序后的结果拼接起来。
measure_expr:可以是任何基于列的表达式。
delimiter:分隔符,默认为NUL
order_by_clause:order by子句决定了列值被拼接的顺序。
4.Oracle 中文转拼音FN_GETPY()
SQL> select fn_getpy('具隽帆') from dual;
jujuanfan
SQL> select fn_getpy('具隽帆',1) from dual;
JUJUANFAN
SQL> select fn_getpy('具隽帆',2) from dual;
JuJuanFan
SQL> select fn_getpy('具隽帆',3) from dual;
jjf
SQL> select fn_getpy('具隽帆',4) from dual;
jujuanfan
相关文章推荐
- ORACLE中一些常用而且实用的查询和函数
- oracle的一些函数、指令
- sql server 借用函数处理一些关于时间的实用例子
- 关于Oracle的一些函数
- 个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
- Oracle经常用到的一些函数
- Oracle一些日期计算的函数
- Oracle group by及其若干相关函数的一些说明
- Oracle常用的一些语法、命令和函数
- Oracle中一些常用函数
- 【python】整理一些实用的函数
- Android 的一些实用的函数
- Oracle dual表 sql语句的一些函数(下)
- MATLAB 图像处理一些实用函数整理
- oracle 中一些独特的函数用法
- PHP 常用函数库和一些实用小技巧
- Oracle函数之非常实用的统计查询
- [整理]sql语句一些实用技巧for oracle
- Oracle一些实用的数据查看
- oracle一些高级函数的用法