如何在Azure Data Flow中实现类For循环逻辑?
在Azure Data Flow中实现日期序列生成的循环逻辑
需求回顾
基于每行的两个日期列,按以下规则生成日期序列行:
- 初始化:以
Start_Rcvd Date为起始日期 - 循环条件:生成的日期
DateBetweenDRO≤WIP AGE DATE - 循环体:每次将
DateBetweenDRO加1天 - 输出:每行原始数据对应生成从起始日期到结束日期的所有日期行(每天一行)
实现步骤
Azure Data Flow中没有直接的For循环组件,可通过派生列+**生成行(Generate Rows)**组件组合实现:
添加派生列组件
- 新增列名:
DayDiff - 表达式:
datediff(Start_Rcvd Date, WIP AGE DATE, 'day')
(计算起始日期到结束日期的总天数,用于控制生成行的数量范围)
- 新增列名:
添加生成行组件
这是实现循环生成的核心,配置如下:- 初始化变量:创建变量
CurrentDate,初始值设为Start_Rcvd Date - 循环条件:设置为
CurrentDate <= WIP AGE DATE - 迭代更新:在「每迭代」的表达式中,将
CurrentDate更新为addDays(CurrentDate, 1) - 输出配置:保留原始行的所有列,将
CurrentDate重命名为DateBetweenDRO作为生成的日期列
- 初始化变量:创建变量
示例验证(按月递增场景)
若需求改为按月递增(如示例中NewDate:31/01/2022,OldDate:01/05/2022),只需调整两处:
- 派生列表达式改为
datediff(NewDate, OldDate, 'month') - 生成行的迭代表达式改为
addMonths(CurrentDate, 1)
最终会生成从31/01/2022到30/04/2022的日期行(共4行,均满足≤01/05/2022的条件)
内容的提问来源于stack exchange,提问作者AzSurya Teja
相关产品推荐
相关产品推荐

