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

在Azure Synapse中如何对含JSON列的CSV进行查询处理?

处理CSV中的JSON列并实现查询(Azure Synapse)

完全可以实现,你可以借助Azure Synapse的OPENROWSET结合JSON解析函数来处理CSV里的JSON列,直接提取出需要的ID和Name字段。

场景1:JSON列是单个对象(每行对应一个JSON对象)

假设CSV里存储JSON的列名叫json_content,执行以下查询即可得到目标格式的结果:

SELECT
    JSON_VALUE(json_content, '$.ID') AS ID,
    JSON_VALUE(json_content, '$.Name') AS Name
FROM OPENROWSET(
    BULK '你的CSV文件存储路径',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0'
) WITH (
    -- 按CSV实际列结构定义,这里只示例关键的JSON列,其他列按需添加
    其他列1 VARCHAR(50),
    json_content VARCHAR(MAX),
    其他列2 INT
) AS csv_source

场景2:JSON列是对象数组(每行对应一个包含多个对象的JSON数组)

如果JSON列里存的是数组,需要用OPENJSON配合CROSS APPLY来展开数组:

SELECT
    parsed_data.ID,
    parsed_data.Name
FROM OPENROWSET(
    BULK '你的CSV文件存储路径',
    FORMAT = 'CSV',
    PARSER_VERSION = '2.0'
) WITH (
    json_content VARCHAR(MAX)
) AS csv_source
CROSS APPLY OPENJSON(json_content)
WITH (
    ID INT '$.ID',
    Name VARCHAR(100) '$.Name'
) AS parsed_data

关键点说明

  • 定义CSV列时,务必把JSON列设为VARCHAR(MAX)或NVARCHAR(MAX),避免JSON内容因长度截断无法解析。
  • JSON_VALUE用于提取单个值,OPENJSON用于解析数组或复杂JSON结构,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:35:10