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

Azure Synapse SQL无服务器使用FOR JSON子查询时遇T-SQL错误

问题解答

错误原因及功能限制说明

这确实是Azure Synapse SQL无服务器池的功能限制。

Synapse SQL无服务器采用分布式数据处理架构,会将数据集拆分到多个节点并行处理。而你使用的嵌套子查询+FOR JSON PATH的写法,需要对主查询的每一行单独执行子查询并将结果序列化为JSON数组——这种逐行关联的JSON聚合逻辑,目前无法在无服务器的分布式处理模式下实现,因此触发了“该查询引用了分布式处理模式下不支持的对象”错误。

替代实现方案

可以通过预聚合关联数据,结合STRING_AGG构造JSON数组的方式达到类似效果,示例代码如下:

WITH ShiftResources AS (
    SELECT 
        resource,
        STRING_AGG('{"Id":' + CAST(id AS VARCHAR(20)) + '}', ',') AS FutureShiftsJson
    FROM [dbo].[shift]
    GROUP BY resource
)
SELECT
    s.id AS Id,
    s.shifttype AS ShiftType,
    s.resource AS ResourceId,
    CONCAT('[', sr.FutureShiftsJson, ']') AS FutureShifts
FROM [dbo].[shift] s
JOIN ShiftResources sr ON s.resource = sr.resource
FOR JSON PATH, ROOT('Shift')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:36:05