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

ADF如何获取Lookup活动全部TRGT_VAL值用于查询WHERE IN子句

解决方法

你当前的写法仅取到了返回数组的第一个元素(下标为0的元素),所以只能拿到第一个TRGT_VAL的值,按照以下方案修改表达式即可拿到完整值列表:

场景1:TRGT_VAL为数值类型(IN子句不需要单引号)

用select函数提取数组中所有TRGT_VAL属性,再用join函数拼接为逗号分隔的字符串,最终组合成完整SQL即可:

@concat('SELECT * FROM table WHERE column in (', join(select(activity('Get_ID').output.value, item().TRGT_VAL), ','), ')')

拼接后最终生成的SQL为:

SELECT * FROM table WHERE column in (10000,52000)

场景2:TRGT_VAL为字符串类型(IN子句需要单引号包裹值)

提取TRGT_VAL时额外拼接单引号即可(ADF表达式中单引号用两个单引号转义):

@concat('SELECT * FROM table WHERE column in (', join(select(activity('Get_ID').output.value, concat('''', item().TRGT_VAL, '''')), ','), ')')

拼接后最终生成的SQL为:

SELECT * FROM table WHERE column in ('10000','52000')

可选优化:处理空返回异常

如果Lookup活动可能返回0条结果,可以加逻辑判断避免IN子句为空导致SQL语法错误:

@if(
    activity('Get_ID').output.count > 0,
    concat('SELECT * FROM table WHERE column in (', join(select(activity('Get_ID').output.value, item().TRGT_VAL), ','), ')'),
    'SELECT * FROM table WHERE 1=2'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:39:00