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;
相关推荐
会飞的架狗师1 天前
【MySQL体系】第8篇:MySQL集群架构技术详解
数据库·mysql·架构
星光一影1 天前
供应链进销存源码uniapp全开源ERP多仓库管理系统pc+app手机端
mysql·elementui·uni-app·开源·php·phpstorm·1024程序员节
wangnaisheng1 天前
【C#】EventHandler的使用
c#
唐青枫1 天前
C#.NET Cronos 实战:优雅解析与执行 Cron 表达式
c#·.net
ximy13351 天前
Mysql基础知识之SQL语句——库表管理操作
sql·mysql·oracle
2501_938782091 天前
《Ubuntu 系统下 MySQL 安装前的环境检查与依赖准备指南》
hive·mysql·ubuntu·adb
周杰伦_Jay1 天前
【向量检索与RAG全流程解析】HNSW原理、实践及阿里云灵积DashScope嵌入
人工智能·阿里云·数据挖掘·云计算·database·1024程序员节
Java 码农1 天前
mysql8.4.6 LTS 主从架构搭建
mysql·adb·架构
摇滚侠1 天前
Oracle 数据库修改表名
数据库·oracle