我所要做的基本上是在数据流中模拟SQL WHERE IN CLAUSE。我想将逗号分隔的值串传递到我的数据流中,即ptf_proc_link_id ="A,B,C"。
在数据流内部,我想使用这些值来过滤我的一个输入列:
这相当于在SQL SELECT * FROM my_delta_table中写入ptf_proc_link_id位于(A,B,C)中的内容。
然而,数据流文档只提示我可以过滤单个值,即ptf_proc_link_id = A。我尝试过使用intersect,但两个参数都需要是数组,在我的情况下,其中一个是列。我可以做一些类似ptf_proc_link_id = A或ptf_proc_link_id = B或ptf_proc_link_id = C的事情,但我永远不知道我会有多少个输入值,所以我不能硬编码。
对于数据流来说,这似乎是一个非常简单的用例,所以如果有人能告诉我正确的方法是什么,我将非常感激。
谢谢大家!
1条答案
按热度按时间wgeznvg71#
您可以在ADF数据流中使用
in()
函数来过滤多个值。语法:
in(array of items,item to find)
| 钥匙|类|姓名|标记|出生日期|
| - ------|- ------|- ------|- ------|- ------|
| 1个|1个|阿朱纳|五十|2015年1月2日|
| 第二章|1个|巴桑塔|四十七|2015年5月1日|
| 三个|1个|苏巴拉|五十四|2015年5月6日|
| 四个|第二章|甘达尔瓦|六十|2014年1月2日|
| 五个|第二章|乌伊瓦拉|五十五|2014年9月2日|
| 六个|第二章|萨纳达纳|六十四|2014年1月12日|
| 七|三个|斯里达马|七十五|二〇一三年二月一日|
| 八个|三个|须玉|八十|二〇一三年十二月十三日|
| 九|三个|瓦苏|八十一|二〇一三年十二月一日|
x1c 0d1x img:1源数据预览。
in(['2','4','6'], key)
或in(array('2','4','6'), key)
img:2过滤条件设置
*过滤器转换的输出数据:
img:3过滤转换数据预览
img:4个数据流参数
in($parameter1,key)
参考:
data flow expression - in
上的Microsoft文档