如何在Azure Data Factory查询的IN条件中传入多值参数
ADF流水线IN查询条件传入多值参数解决方案
以下两种方案可根据你的参数类型直接选用:
方案1:参数为数组类型(推荐)
如果pipeline().globalParameters.month是数组格式(例如["MAY","JUN","JUL"]),直接用join方法拼接单引号即可:
- 表达式写法:
@concat('select * from foo where month IN ( ''', join(pipeline().globalParameters.month, ''','''), ''' )')
- 逻辑说明:
join(pipeline().globalParameters.month, ''','''')会把数组拼接为MAY','JUN','JUL,前后补单引号后正好得到符合IN语法的'MAY','JUN','JUL'格式。
方案2:参数为逗号分隔的字符串类型
如果pipeline().globalParameters.month是逗号分隔的字符串格式(例如MAY,JUN,JUL),用replace替换逗号即可:
- 表达式写法:
@concat('select * from foo where month IN ( ''', replace(pipeline().globalParameters.month, ',', ''','''), ''' )')
注意事项
如果参数值本身包含单引号,需要额外做单引号转义,避免SQL语法错误,转义写法参考:
replace(参数值, '''', '''''')
内容的提问来源于stack exchange,提问作者Jovin Manayath
相关产品推荐
相关产品推荐

