最近要导个oracle的数据,其中一个值是用逗号分隔的方式将id列表保存在一个字段中,研究了半天才搞定。简单分享下:
SELECT
id, REGEXP_SUBSTR (desc, '[^,]+', 1, lv) desc
FROM
table1 a,
(
SELECT
LEVEL lv
FROM
dual CONNECT BY LEVEL < 10
) b
WHERE b.lv <= REGEXP_COUNT (a.desc, '\,') + 1
ORDER BY id
可以将如下格式(A)转为(B)
A: id desc
1 12,23,24
B:id desc
1 12
1 23
1 24
那么如何将多行转为逗号分隔呢?可以用 wm_concat
如:select id,wm_concat(desc) from table1 group by id
本文分享了在Oracle数据库中处理逗号分隔的ID列表字段的方法,通过使用REGEXP_SUBSTR函数进行数据拆分,以及利用wm_concat函数实现多行数据的聚合。这些技巧对于处理复杂数据结构和提高数据处理效率非常有用。

被折叠的 条评论
为什么被折叠?



