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

Azure Data Factory数据流:如何用多值过滤输入列

在Azure Data Factory数据流中实现SQL WHERE IN逻辑的方法

核心思路

把传入的逗号分隔字符串参数转换为标准数组,再利用数据流的数组匹配函数实现动态过滤,替代无法适配可变值数量的OR逻辑或单值匹配。

具体实现步骤

  1. 将逗号分隔字符串转换为无空格数组
    假设传入的参数名为procLinkIds,值为"A, B, C"。用以下表达式处理,确保数组元素无多余空格:

    array(map(split(trim($procLinkIds), ','), eachItem -> trim(eachItem)))
    

    拆解逻辑:

    • trim($procLinkIds):去除字符串首尾空格
    • split(..., ','):按逗号拆分成原始字符串数组
    • map(..., eachItem -> trim(eachItem)):遍历数组,清除每个元素的前后空格
    • array(...):统一输出标准数组类型
  2. 在过滤转换中实现匹配逻辑
    添加「过滤」转换,在过滤条件中使用in()函数判断列值是否在目标数组内:

    in(ptf_proc_link_id, array(map(split(trim($procLinkIds), ','), eachItem -> trim(eachItem))))
    

    该逻辑完全等价于SQL语句SELECT * FROM my_delta_table where ptf_proc_link_id in ('A','B','C'),且支持任意数量的参数值。

  3. 可选:空参数兼容处理
    如果参数可能为空,可添加空值判断避免报错,比如:

    isEmpty($procLinkIds) || in(ptf_proc_link_id, array(map(split(trim($procLinkIds), ','), eachItem -> trim(eachItem))))
    

    当参数为空时,将返回所有数据,可根据业务需求调整判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:01:36