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

Azure Data Factory Switch块中如何匹配通配符间字符选择分支

Azure Data Factory Switch块表达式实现方案

核心逻辑表达式

Switch块的判断表达式需根据sourcetablename内容返回对应分支标识,直接用contains结合嵌套if即可实现需求:

@if(contains(activity('GetTablesToLoad').output.first().SourceTableName, '{FromDate}'), 'PipeA', if(contains(activity('GetTablesToLoad').output.first().SourceTableName, '{passinid}'), 'PipeB', 'PipeC'))

表达式说明

  • 优先判断字符串是否包含{FromDate},满足则返回PipeA,对应跳转至管道A
  • 不满足则进入第二层判断,检查是否包含{passinid},满足则返回PipeB,对应跳转至管道B
  • 上述条件都不满足时返回PipeC,对应跳转至管道C

Switch分支配置

  • 添加分支1:值填写PipeA,关联管道A
  • 添加分支2:值填写PipeB,关联管道B
  • 使用默认分支处理剩余情况,关联管道C

补充:提取占位符的ADF表达式(对应SQL逻辑)

如果需要像SQL示例那样提取{}包裹的内容,ADF中用indexOf替代CHARINDEX,实现如下:

@substring(
    activity('GetTablesToLoad').output.first().SourceTableName,
    indexOf(activity('GetTablesToLoad').output.first().SourceTableName, '{'),
    add(
        sub(
            indexOf(activity('GetTablesToLoad').output.first().SourceTableName, '}'),
            indexOf(activity('GetTablesToLoad').output.first().SourceTableName, '{')
        ),
        1
    )
)

该表达式会从sourcetablename中提取第一个{}包裹的内容(比如示例中的{passinid})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:53:01