我无法理解这个陈述 – 在谷歌搜索后不是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):正则表达式[^,]匹配字符串中不包含逗号的任何字符序列.
通过使用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个结果,还将其分解为结果集中的单独行!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。