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

在ADF中如何将数组变量传入SQL的IN查询条件

Azure Synapse专用池拼接IN条件优化方案
  • 提取ID值并生成合法IN条件:利用Azure Data Factory(ADF)的表达式函数直接处理Lookup活动返回的结果,无需逐条循环。使用join函数遍历返回的对象数组,提取ID字段并格式化为符合SQL语法的格式:

    • 若ID为字符串类型,使用以下表达式:
      @concat('select ID from source where ID in (', join(activity('Lookup1').output.value, ', ', (item) => concat('''', item.ID, '''')), ')')
      
    • 若ID为数值类型,无需添加单引号,表达式调整为:
      @concat('select ID from source where ID in (', join(activity('Lookup1').output.value, ', ', (item) => string(item.ID)), ')')
      

    该表达式会将Lookup返回的[{"ID":"xxx"},...]格式数据,转换为('xxx','yyy')或(123,456)这类合法的IN条件参数。

  • 关键注意点:

    • 确保Lookup活动未勾选First row only选项,这样才能获取完整的ID列表
    • 1-200条ID的场景下,此拼接方式不会触发SQL语句长度限制,比For-Each循环效率提升明显

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:32:07