oracle使用CTE递归分解字符串

oracle使用CTE递归分解字符串

背景

给定一个不定长度字符串 并且以,分割例如 '1,2,3,4' 使用sql查询 返回1,2,3,4四行 如果'1,2' 则返回 1,2 两行 使用sql实现

实现sql

sql 复制代码
WITH RECURSIVE split_strings AS (
    -- 初始查询,处理第一个值
    SELECT 
        id,
        SUBSTRING_INDEX(column1, ',', 1) AS value,
        SUBSTRING(column1, LENGTH(SUBSTRING_INDEX(column1, ',', 1)) + 2) AS remaining
    FROM fs.my_table
    WHERE column1 != ''
    UNION ALL
    SELECT 
        s.id,
        SUBSTRING_INDEX(s.remaining, ',', 1) AS value,
        SUBSTRING(s.remaining, LENGTH(SUBSTRING_INDEX(s.remaining, ',', 1)) + 2) AS remaining
    FROM split_strings s
    WHERE s.remaining != ''
)
SELECT id, value
FROM split_strings
ORDER BY id, value;
相关推荐
ysn1111119 分钟前
反编译分析C#闭包
c#
知其然亦知其所以然26 分钟前
面试官微笑发问:第100万页怎么查?我差点当场沉默…
后端·mysql·面试
代码的余温1 小时前
Oracle RAC认证矩阵:规避风险的关键指南
数据库·oracle·矩阵
Mr_hwt_1232 小时前
基于mybatis-plus动态数据源实现mysql集群读写分离和从库负载均衡教程(详细案例)
数据库·spring boot·mysql·mybatis·mysql集群
DemonAvenger2 小时前
MySQL内存优化:缓冲池与查询缓存调优实战指南
数据库·mysql·性能优化
one9963 小时前
WPF应用程序中的异常处理
c#·.net·wpf
weixin_456904273 小时前
MySQL高级特性详解
数据库·mysql
almighty273 小时前
C# ObjectListView实现树状文件夹浏览
c#·树状图·objectlistview·c#树状图·文件显示
Mr_hwt_1234 小时前
基于MyCat 中间件实现mysql集群读写分离与从库负载均衡教程(详细案例教程)
数据库·mysql·中间件·mysql集群
zhong liu bin5 小时前
MySQL数据库面试题整理
数据结构·数据库·mysql