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;
相关推荐
玩泥巴的9 小时前
飞书 .NET SDK 事件处理的幂等性与去重机制
c#·.net·二次开发·飞书
在路上看风景9 小时前
3.2 FileStream
c#
zwm2698888159 小时前
6号楼 部分声光24v电压达不到,显示11v
c#
萧曵 丶12 小时前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
椒颜皮皮虾13 小时前
TensorRtSharp:在 C# 世界中释放 GPU 推理的极致性能
c#·tensorrt
行止9513 小时前
WinForms 彻底隐藏 滚动条的终极解决方案
c#
bugcome_com14 小时前
WPF样式进阶实战:外置样式+MVVM主题切换+样式优先级全解析
c#·.net·wpf
时光追逐者14 小时前
TIOBE 公布 C# 是 2025 年度编程语言
开发语言·c#·.net·.net core·tiobe
观无15 小时前
固高运动控制卡(GST800)基础应用分享
c#
kaico201815 小时前
MySQL的索引
数据库·mysql