Azure Synapse中Filter Activity多OR条件文件名过滤方案咨询
Azure Synapse Filter Activity 多值OR过滤最优方案
针对你需要匹配文件名包含KU001、KU002、KU004任一值的需求,有两种高效实现方式:
方法一:直接用逻辑OR连接多个contains表达式
Azure Synapse的表达式支持直接使用||(逻辑或)运算符连接多个contains判断,完全满足任一匹配的需求,这是最直观的实现方式:
@or(contains(item().name,'KU001'), contains(item().name,'KU002'), contains(item().name,'KU004'))
这种写法逻辑清晰,适合值数量不多的场景,直接在Filter Activity的Filter condition中替换原有表达式即可。
方法二:借助数组实现可扩展的匹配逻辑
如果后续可能需要添加更多匹配值,推荐用数组存储目标值,再结合遍历判断实现更易维护的逻辑:
- 用数组定义所有需要匹配的目标值
- 通过过滤数组检查当前文件名是否包含任一目标值,表达式如下:
@greater(length(filter(createArray('KU001','KU002','KU004'), contains(item().name, item()))), 0)
这种方式的优势在于后续新增匹配值时,只需修改数组内容即可,无需调整逻辑结构,适合值较多或需要动态维护的场景。
内容的提问来源于stack exchange,提问作者educational board
相关产品推荐
相关产品推荐

