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;
相关推荐
数据科学小丫30 分钟前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
xianjian09122 小时前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql
eggwyw3 小时前
MySQL 与 Redis 的数据一致性问题
数据库·redis·mysql
Bdygsl4 小时前
MySQL(5)—— 聚合查询/分组查询/联合查询
数据库·mysql
lhbian4 小时前
开启mysql的binlog日志
数据库·mysql
第二层皮-合肥4 小时前
基于C#的工业测试控制软件-总体框架
开发语言·c#
steins_甲乙6 小时前
C# 通过共享内存与 C++ 宿主协同捕获软件窗口
开发语言·c++·c#·内存共享
岁岁种桃花儿6 小时前
AI超级智能开发系列从入门到上天第十篇:SpringAI+云知识库服务
linux·运维·数据库·人工智能·oracle·llm
CHQIUU6 小时前
PostgreSQL vs MySQL:选型指南与深度对比
数据库·mysql·postgresql
安徒生梦话6 小时前
Mysql Mvcc理解
mysql