SELECT REGEXP_SUBSTR(kmh, '[^,]+', 1, rownum) kmh from (select * from bysit.mspub_subject_month_Ope_conf where xh = i.xh) connect by rownum <= --connect by 递归 LENGTH(kmh) - LENGTH(regexp_replace(kmh, ',', '')) + 1)是什么意思
时间: 2024-02-10 19:25:28 浏览: 69
Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解
这段 SQL 查询语句的意思是从表 `bysit.mspub_subject_month_Ope_conf` 中选择所有满足条件 `xh = i.xh` 的记录,并将字段 `kmh` 按照逗号进行分割,然后逐条返回分割后的结果。
具体来说,`REGEXP_SUBSTR(kmh, '[^,]+', 1, rownum)` 这部分使用正则表达式将字段 `kmh` 按照逗号进行分割,并返回分割后的结果。`CONNECT BY` 语句用于实现递归操作,`ROWNUM` 是 Oracle 数据库的伪列,代表当前行的序号。
整个查询语句的目的是将字段 `kmh` 中的数据按照逗号分隔后逐条返回。
阅读全文