Oracle递归函数哪里写错了求指教

1

SQL 姚友林 发布于 2024-9-5 13:54 (编辑于 2024-9-5 19:49)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-9-5 13:56(编辑于 2024-9-5 14:40)

SELECT TRIM(REGEXP_SUBSTR(your_column, '[^,]+', 1, LEVEL)) AS split_value
FROM your_table
CONNECT BY REGEXP_SUBSTR(your_column, '[^,]+', 1, LEVEL) IS NOT NULL  
AND PRIOR your_column = your_column
AND PRIOR SYS_GUID() IS NOT NULL  
AND ROWNUM <= REGEXP_COUNT(your_column, ',') + 1;

更新

SELECT TRIM(REGEXP_SUBSTR(your_column, '[^,]+', 1, LEVEL)) AS split_value
FROM your_table
CONNECT BY REGEXP_SUBSTR(your_column, '[^,]+', 1, LEVEL) IS NOT NULL  
AND PRIOR your_unique_column = your_unique_column  -- 使用表的唯一列来避免跨行递归  
AND PRIOR SYS_GUID() IS NOT NULL  
AND LEVEL <= REGEXP_COUNT(your_column, ',') + 1;

最佳回答
0
shirokoLv6资深互助
发布于2024-9-5 14:36(编辑于 2024-9-5 14:48)

select name ,

level as t,

REGEXP_SUBSTR(XM_CODE,'[^,]+',LEVEL) as PROJECT_CODE

from 表

--where XM_CODE

connect by

prior NAME = NAME

and level<=REGEXP_COUNT(XM_CODE,',')+1

and prior dbms_random.value is not null

image.png

  • 3关注人数
  • 177浏览人数
  • 最后回答于:2024-9-5 19:49
    请选择关闭问题的原因
    确定 取消
    返回顶部