sql – regex_substr中的connect by子句
发布时间:2021-01-19 09:07:00 所属栏目:MsSql教程 来源:网络整理
导读:我无法理解这个陈述 – 在谷歌搜索后不是eveN pv_no_list :='23,34,45,56';SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) no_list FROM DUAL CONNECT BY REGEXP_SUBSTR (pv_no_list,LEVEL) IS NOT NULL 解决方法 连接的“滥用”(如Colin’t Ha
|
我无法理解这个陈述 – 在谷歌搜索后不是eveN pv_no_list :='23,34,45,56';
SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL)
no_list
FROM DUAL
CONNECT BY REGEXP_SUBSTR (pv_no_list,LEVEL) IS NOT NULL
解决方法连接的“滥用”(如Colin’t Hart所说)在这里有一个很好的用途:通过使用REGEXP_SUBSTR,您只能提取4个匹配项中的一个(23,56):正则表达式[^,]匹配字符串中不包含逗号的任何字符序列. 如果您尝试运行: SELECT REGEXP_SUBSTR ('23,56',]+') as "token"
FROM DUAL
你会得到23. 如果你试试跑: SELECT REGEXP_SUBSTR ('23,1) as "token"
FROM DUAL
现在我们也设置了two additional parameters:你也会得到23:开始寻找位置1(这是默认值),并返回第一次出现. 现在让我们运行: SELECT REGEXP_SUBSTR ('23,2) as "token"
FROM DUAL
这次我们得到34(第二次出现)并且使用3作为最后一个参数将返回45,依此类推. 使用递归连接和级别确保您将收到所有相关结果(不一定按照原始顺序!): SELECT DISTINCT REGEXP_SUBSTR ('23,LEVEL) as "token"
FROM DUAL
CONNECT BY REGEXP_SUBSTR ('23,LEVEL) IS NOT NULL
order by 1
将返回: TOKEN 23 34 45 56 它不仅包含所有4个结果,还将其分解为结果集中的单独行! 如果您将使用fiddle – 它可能会让您更清楚地了解该主题. (编辑:天瑞地安资讯网_保定站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 为什么使用EXECUTE IMMEDIATE运行此查询会导致它失败
- sql-server – 来自sql server的高磁盘I / O还是高磁盘I /
- 使用.SQL文件创建MySQL数据库
- sql – 搜索数字是否包含在表达式中:1-3,5,10-15,20
- sql – 如何找到SSIS 2008 R2包中使用的.NET框架版本?
- 如何简化MS SQL服务器数据库还原?
- 高并发下的幂等性怎样保证?
- sql-server-2005 – 永久删除表时回收SQL Server 2005数据库
- sql-server – 为什么这些字符在SQL Server中都是相同的?
- 可扩展性 – 为什么关系数据库不能满足大数据的规模?
站长推荐
热点阅读

