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;
相关推荐
1368木林森5 分钟前
聊聊Mysql主从延迟的幽灵陷阱与解决方案
数据库·mysql
刚子编程1 小时前
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
开发语言·c#·事务处理·trycatch
斯卡文计算机术士1 小时前
C#测试(二)
c#
manyikaimen1 小时前
博派智能-运动控制技术-C#环境的搭建
c#·环境搭建·运动控制器·运动控制卡·动态库调用
Yushan Bai1 小时前
ORACLE数据库从WINDOWS环境迁移到LINUX环境并升级的方案步骤
数据库·oracle
雪碧聊技术1 小时前
mysql表级锁的介绍
数据库·mysql
海棠蚀omo1 小时前
从概念到实战:手把手带你吃透 MySQL 事务核心原理
数据库·mysql
panzer_maus10 小时前
MySQL 索引介绍与索引优化的简单介绍
数据库·mysql
captain37610 小时前
事务___
java·数据库·mysql
爱学习的小邓同学11 小时前
MySQL --- MySQL数据类型
数据库·mysql