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;
相关推荐
“αβ”2 分钟前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle
q***547516 分钟前
【MySQL】表的相关操作
android·mysql·adb
g***557519 分钟前
【mysql部署】在ubuntu22.04上安装和配置mysql教程
android·mysql·adb
麻辣兔变形记1 小时前
基于 Go‑Zero 的用户 CRUD Demo:如何一步步从 MySQL + sqlx 演进为 PostgreSQL + GORM + 微服务架构
mysql·微服务·postgresql·架构·golang
e***0961 小时前
【MySQL】MySQL库的操作
android·数据库·mysql
4***V2021 小时前
MySQL查询执行计划
android·mysql·adb
wljt2 小时前
Redis常用命令
数据库·redis·oracle
Tiger_shl2 小时前
SqlConnection、SqlCommand 和 SqlDataAdapter
开发语言·数据库·c#
h***93662 小时前
【MySQL数据库】Ubuntu下的mysql
数据库·mysql·ubuntu
h***8563 小时前
MySQL数据分析
数据库·mysql