在另一个查询中使用查找 activity 的输出
Use the output from a lookup activity on another query
我查找 activity (Get_ID) returns:
{
"count": 2,
"value": [
{
"TRGT_VAL": "10000"
},
{
"TRGT_VAL": "52000"
}
],
(...)
我想在另一个 activity 的查询的 WHERE 子句中使用来自 TRGT_VAL 的这两个值。我正在使用
@concat('SELECT * FROM table WHERE column in ',activity('Get_ID').output.value[0].TRGT_VAL)
但只考虑第一个值 10000。如何获取整个列表?
我通过大量替换解决了问题:
@concat('(',replace(replace(replace(replace(replace(replace(replace(string(activity('Get_ID').output.value),'{',''),' ',''),'"',''),'TRGT_VAL:',''),'[',''),'}',''),']',''),')')
Output
{
"name": "AptitudeCF",
"value": "(10000,52000)"
}
您可以使用字符串插值语法并构建查询,而不是使用带有大量替换函数的大表达式。以下是您可以考虑的查询。
SELECT * FROM table WHERE column in (@{activity('Get_ID').output.value[0].TRGT_VAL},@{activity('Get_ID').output.value[1].TRGT_VAL)
我查找 activity (Get_ID) returns:
{
"count": 2,
"value": [
{
"TRGT_VAL": "10000"
},
{
"TRGT_VAL": "52000"
}
],
(...)
我想在另一个 activity 的查询的 WHERE 子句中使用来自 TRGT_VAL 的这两个值。我正在使用
@concat('SELECT * FROM table WHERE column in ',activity('Get_ID').output.value[0].TRGT_VAL)
但只考虑第一个值 10000。如何获取整个列表?
我通过大量替换解决了问题:
@concat('(',replace(replace(replace(replace(replace(replace(replace(string(activity('Get_ID').output.value),'{',''),' ',''),'"',''),'TRGT_VAL:',''),'[',''),'}',''),']',''),')')
Output
{
"name": "AptitudeCF",
"value": "(10000,52000)"
}
您可以使用字符串插值语法并构建查询,而不是使用带有大量替换函数的大表达式。以下是您可以考虑的查询。
SELECT * FROM table WHERE column in (@{activity('Get_ID').output.value[0].TRGT_VAL},@{activity('Get_ID').output.value[1].TRGT_VAL)