You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL将方括号嵌套内容拆分至单独行?

拆分数组字符串为多行数值对的SQL实现方法

针对不同SQL数据库,有对应的实现方式,以下是几种常见数据库的具体操作方法:

MySQL 8.0+ 版本

利用JSON_TABLE函数解析JSON格式的数组,直接拆分出每行的数值对:

SELECT j.value AS `Column A`
FROM your_table
JOIN JSON_TABLE(
    your_table.`Column A`,
    '$[*]' COLUMNS (value VARCHAR(20) PATH '$')
) j;

如果你的字段值不是标准JSON格式(比如引号缺失),可以先做简单清洗再解析:

SELECT j.value AS `Column A`
FROM (
    SELECT REPLACE(REPLACE(`Column A`, '[', '["'), ']', '"]') AS cleaned_col
    FROM your_table
) t
JOIN JSON_TABLE(
    t.cleaned_col,
    '$[*]' COLUMNS (value VARCHAR(20) PATH '$')
) j;

PostgreSQL 版本

方法1:JSON解析方式

SELECT json_array_elements_text(`Column A`::json) AS "Column A"
FROM your_table;

方法2:字符串处理+数组拆分

SELECT unnest(string_to_array(trim(both '[]' from `Column A`), '],[')) AS "Column A"
FROM your_table;

逻辑说明:先去掉字段首尾的方括号,再把字符串按],['分割成数组,最后将数组拆分为多行。

SQL Server 版本

使用OPENJSON函数实现拆分:

SELECT value AS [Column A]
FROM your_table
CROSS APPLY OPENJSON(`Column A`);

若字段格式需要调整,先清洗再解析:

SELECT value AS [Column A]
FROM (
    SELECT REPLACE(REPLACE(`Column A`, '[', '["'), ']', '"]') AS cleaned_col
    FROM your_table
) t
CROSS APPLY OPENJSON(t.cleaned_col);

注意:将上述代码中的your_table替换成你实际使用的表名即可。

内容的提问来源于stack exchange,提问作者dhejok7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:33:17