ADF Lookup活动SQL查询解析异常:无法获取预期输出
ADF Lookup活动SQL单引号转义问题解决
问题核心
ADF表达式中,两个单引号代表一个实际单引号,所以要在最终生成的SQL里得到单引号,需要按转义规则调整表达式写法,你的问题出在单引号转义层级没处理对。
正确的Lookup查询表达式
@concat('select STRING_AGG(concat('''''''', country, '''''''' ), '','') as Col from abc.country where QID = (select QID from abc.masterCountry where countryname = ''USA'')')
转义逻辑说明
- 要在SQL中生成
concat('''', country, '''')(给每个国家前后加单引号),在ADF表达式里需要把SQL中的每个单引号转义为两个:- SQL里的单个
'→ ADF里写'' - 因此SQL里的
concat('''', country, '''')对应ADF里的concat('''''''', country, '''''''' )(六个单引号解析后变成SQL里的三个单引号,实现给country前后各加一个单引号的效果)
- SQL里的单个
- 条件中的
'USA'在ADF里写成''USA'',解析后就是SQL里的'USA'
验证生成的SQL
该表达式最终会生成你需要的目标SQL:
select STRING_AGG(concat('''',country,''''),',') as Col from abc.country where QID = (select QID from abc.masterCountry where countryname = 'USA')
修正预期输出笔误
你给出的预期输出'India','China',USA','UK'存在笔误,正确结果应为'India','China','USA','UK',目标SQL执行后会输出该格式的字符串。
内容的提问来源于stack exchange,提问作者Arun Unnikrishnan
相关产品推荐
相关产品推荐

