Azure Data Factory(ADF)中如何为单个列组合多个CASE条件语句?
Azure Data Factory(ADF)中如何为单个列组合多个CASE条件语句?
嗨,我来帮你理清楚这个问题哈!你想给单个列组合两个CASE条件的思路是对的,但你写的语法不符合ADF里CASE表达式的规范,得调整下结构才行。
首先明确你的需求:
- 当
region等于'a'时,返回今天的日期 - 当
abs字段为null时,返回明天的日期 - 其他所有情况,返回后天的日期
在ADF的派生列活动中,正确的CASE表达式需要用WHEN...THEN...的结构依次定义条件和对应返回值,最后用ELSE处理默认情况,代码示例如下:
CASE WHEN region = 'a' THEN today() WHEN abs IS NULL THEN addDays(today(), 1) ELSE addDays(today(), 2) END
这里给你补充两个细节:
- ADF里没有直接的
tomorrow()或dayAfter()函数,我们可以用addDays(today(), 1)表示明天,addDays(today(), 2)表示后天,当然如果你是用自定义的变量或者其他方式定义了这两个值,直接替换成你的变量名就行。 - CASE表达式是从上到下依次匹配条件的,如果存在
region='a'同时abs IS NULL的情况,第一个条件会优先触发,返回今天的日期。如果你的业务需要这种场景下优先返回明天,那就要调整两个WHEN的顺序哦。
备注:内容来源于stack exchange,提问作者Swetha599
相关产品推荐
相关产品推荐

