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

如何提取Azure Logic Apps中Execute SQL Query的查询结果

我来帮你搞定Azure Logic Apps里提取Execute SQL Query结果的问题,不管是单值还是多行表格,都有清晰的操作方式:

提取单值查询结果

当你的SQL查询返回单个值(比如统计数量、单条记录的某个字段),结果会嵌套在连接器返回的resultsets -> Table1数组的第一个元素里。你可以用表达式直接提取:

  • 假设你的查询是 SELECT COUNT(*) AS TotalOrders FROM Orders,那么提取这个数值的表达式是:
    body('Execute_SQL_Query')?['resultsets']?['Table1'][0]?['TotalOrders']
    
  • 如果是获取单条记录的某个字段,比如 SELECT Email FROM Users WHERE UserID = 456,表达式就是:
    body('Execute_SQL_Query')?['resultsets']?['Table1'][0]?['Email']
    

你可以把这个表达式直接用到后续步骤(比如赋值变量、作为参数传给其他连接器),或者在HTTP响应里返回,比如设置响应体为:

{"totalOrders": "@{body('Execute_SQL_Query')?['resultsets']?['Table1'][0]?['TotalOrders']}"}
提取多行表格结果

如果查询返回的是多行数据,Table1本身就是一个包含所有行对象的数组,处理方式分两种:

  1. 直接返回整个表格作为JSON:
    直接用表达式 body('Execute_SQL_Query')?['resultsets']?['Table1'] 作为HTTP响应的内容,就能得到一个标准的JSON数组,比如:
    [{"CustomerID":1,"Name":"Alice"},{"CustomerID":2,"Name":"Bob"}]
    
  2. 遍历每一行数据:
    添加一个「For Each」步骤,把 body('Execute_SQL_Query')?['resultsets']?['Table1'] 设置为循环的输入。在循环内部,用 items('For_Each')?['ColumnName'] 来引用当前行的指定字段,比如 items('For_Each')?['Name'] 就能拿到每一行的客户名称。

小提示:如果不确定返回结果的结构,可以先运行一次Execute SQL Query步骤,然后在Logic Apps的运行历史里查看该步骤的输出,就能清晰看到resultsets和Table1的具体层级,写表达式的时候更不容易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:39