Azure 数据工厂表达式用于区分 null 和空 '' 字符串

问题描述 投票:0回答:1

我有一个查找活动,它从动态查询返回第一行,该查询通过参数传递到 ADF 管道。

大多数使用的查询都是这样的:

SELECT max(id) as watermark FROM events

如果事件表没有行,则查找活动第一行值为空。我可以使用 @empty() 函数在 If 活动中检查这一点,例如:

@not(empty(activity('lkup_watermark').output.firstrow['watermark']))

但是,有时传递给查找的查询如下:

SELECT '' as watermark

这些适用于那些不需要加载带有水印的增量的表

问题是 @empty 函数将 null 值和 '' 值都视为 true

我也尝试过使用@if()函数,但仍然没有区别。

有人知道 ADF 中检查该值是否为 true null 而不是 '' 值的正确函数吗?

sql azure-data-factory
1个回答
0
投票

用于区分 null 和空 '' 字符串的 Azure 数据工厂表达式

要区分字符串和空值,您可以使用

equals()
函数,如下所示:

@equals(activity('Lookup1').output.firstRow['watermark'],null)

如果lookup的输出为空值,则执行true条件,如果lookup的输出不为null值,则执行false条件。

在下图中,如果活动执行错误条件,您可以看到空字符串:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.