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

Azure Logic Apps中如何将SQL查询JSON结果转为数组用于条件逻辑?

在Azure Logic Apps中实现ID归属判断的两种方案

方案一:直接修改SQL查询返回纯ID数组

(适用场景:有权限调整SQL查询,这是最简便的处理方式)

  • 修改SQL查询,用STRING_AGG函数将所有ID拼接为JSON数组格式(以SQL Server为例):
    SELECT CONCAT('[', STRING_AGG(ISNULL(ID, ''), ','), ']') AS IDArray
    FROM YourTargetTable
    -- 这里添加你的过滤条件
    
  • 在Logic Apps中对SQL返回结果使用Parse JSON工具,将IDArray字段解析为数值数组
  • 直接在条件判断中使用contains函数:
    contains(body('Parse_JSON')?['IDArray'], triggerBody()?['YourTargetID'])
    

方案二:在Logic Apps中通过表达式转换数组

(适用场景:无法修改SQL查询,需处理现有带结构的JSON结果)

  • 先用Parse JSON工具处理SQL返回的原始JSON结构
  • 在条件判断中使用select函数提取所有ID值,同时兼容结果中的空键情况:
    contains(
        select(
            body('Parse_JSON')?['ResultSets']?['Table1'],
            if(contains(item(), 'ID'), item()?['ID'], item()?[''])
        ),
        triggerBody()?['YourTargetID']
    )
    
  • 说明:select函数遍历Table1中的每个对象,判断是否存在ID键——存在则取ID值,否则取空键对应的数值,最终生成纯数值数组,再用contains判断目标ID是否在数组内

补充提示

你的SQL返回结果中出现空键({"":88}),大概率是因为查询时某条记录的列别名为空。建议检查SQL语句,确保所有ID列统一使用ID作为别名,这样表达式可简化为:

contains(select(body('Parse_JSON')?['ResultSets']?['Table1'], item()?['ID']), triggerBody()?['YourTargetID'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:47:09