Oracle中使用REGEXP_SUBSTR,regexp_replace,wm_concat函数
REGEXP_SUBSTR函数格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr :需要进行正则处理的字符串
__pattern :进行匹配的正则表达式
__position :起始位置,从第几个字符开始正则表达式匹配(默认为1)
__occurrence :标识第几个匹配组,默认为1
__modifier :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
实际应用如下:在oracle中,使用一条语句实现将'123,456,789'拆分成'123','456','789'的集合。
1.select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, 1) value from dual;
结果是:123
2.select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, 3) value from dual;
结果是:789
获取一个多个数值的列,从而能够让结果以多行的形式展示出来
1. select level from dual connect by level < 5;
结果是:
--1
--2
--3
--4
将上面REGEXP_SUBSTR和connect by level 关联 使用
select TRIM(REGEXP_SUBSTR('123,456,789', '[^,]+', 1, level)) value from dual connect by level <= 3;
结果是:
--123
--456
--789
优化上面的SQL语句,让生成的行的数量符合实际情况
select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, level) value
from dual
connect by level <= length(regexp_replace('123,456,789', '[^,]*')) + 1;结果是:
--123
--456
--789
regexp_replace函数:
1. select regexp_replace('123,456,789', '[^,]+','q') from dual;
结果:
--q,q,q
2. select regexp_replace('123,456,789', '[^,]+') from dual;
结果:
,,
wm_concat函数
该函数可以把列值以","号分隔起来,并显示成一行
效果:
select t.id_cssp_user from cssp_user_info t where rownum < 5;
select to_char(wm_concat(t.id_cssp_user))
from cssp_user_info t
where rownum < 5;
select t.mobile, to_char(wmsys.wm_concat(t.user_name))
from cssp_user_info t
where rownum<100
group by t.mobile
having count(0) > 1;
Oracle中使用REGEXP_SUBSTR,regexp_replace,wm_concat函数的更多相关文章
- mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()
1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...
- ORACLE中的支持正则表达式的函数
ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBS ...
- Oracle 中的 TO_DATE 和 TO_CHAR 函数
Oracle 中的 TO_DATE 和 TO_CHAR 函数oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年) ...
- 【转】Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年) ...
- Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程? 麦苗答:方法有多种,可以使用DBMS_MET ...
- oracle中类似indexof用法_instr函数
oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 :: 为例 格式 说明 显示值 备注 Year(年): yy two digits( ...
- oracle中的创建过程,函数,包
一.创建存储过程 存储过程是在oracle中存取完成特定业务逻辑的代码块.存储过程是命名块,匿名块不存在数据库中,命名块会存储到数据库中,匿名块每次运行都需要提前编译,命名块一次存储,只会编译一次.命 ...
- Oracle中使用REGEXP_SUBSTR,regexp_replace函数
REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr ...
随机推荐
- html&css面试笔记
1.CSS选择器有哪些?它们的优先级是怎样的? 选择器类型: id选择器 ( # myid) 类选择器 (.myclassname) 标签选择器 (div, h1, p) 相邻选择器 (h1 + p) ...
- mysql实现“存在即更新,不存在即插入”
方法1:使用replace关键字 replace是insert的增强版,可以实现插入的数据和已存在的数据发生主键或者唯一键重复,则删除已存在的数据,再实现插入,如果不重复,则直接插入数据. 结合Myb ...
- Chrome-逆向分析JS-1分析google网站翻译器原文存放位置
剧透:就是使用了一下 Chrome DevTools 的 Memory 功能,通过已知的 JS 变量的值查找 JS 内存中变量的引用 # 一:不分析一下现有的网页翻译方法么? 总所周知,(As is ...
- 如果遇到找不到元素如何处理? Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"investmentframe"}
常见几种原因与应对,详细参见http://www.blogjava.net/qileilove/archive/2014/12/11/421309.html 1,动态ID无法找到,用xpath路径解决 ...
- Java学习之多线程(线程安全问题及线程同步)
一.线程安全问题产生前提:1.多线程操作共享数据2.线程任务中有多条代码 class Ticket implements Runnable { //2.共享数据 private int num = 1 ...
- 洛谷P1219 八皇后
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
- PAT_A1073#Scientific Notation
Source: PAT A1073 Scientific Notation (20 分) Description: Scientific notation is the way that scient ...
- 用MR生成HFile文件格式后,数据批量导入HBase
环境hadoop cdh5.4.7 hbase1.0.0 测试数据: topsid uid roler_num typ 10 111111 255 0 在Hbase 创建t2数据库: create ...
- python序列基本操作
这里讲一基本概念:容器---可以包含其他对象的对象:两种主要的容器是序列(列表和元祖)和映射(字典) 关于序列的通用基本操作:python中常用的序列主要有两种:列表和元祖 -------索引,切片 ...
- Codeforces 500D New Year Santa Network(树 + 计数)
D. New Year Santa Network time limit per test 2 seconds memory limit per test 256 megabytes input st ...


