Azure 数据工厂数据库 Table 列中最后一个非空值或空值的表达式

Expression for last non Null Value or Null Value in Database Table Column with Azure Data Factory

我有一个数据库 Table,如下所示:

Date             Type
2020-01-01       non_empty_date
2020-01-02       non_empty_date
1900-01-01       with_1900
2020-01-03       nom_empty_date
NULL             
NULL             

预期的输出是这样的:

Date             Type
2020-01-01       non_empty_date
2020-01-02       non_empty_date
1900-01-01       with_1900
2020-01-03       non_empty_date
NULL             Null_comes_After_non_empty_date
NULL             Null_comes_After_empty_date

逻辑是这样的:

  1. 如果日期列不为空,请输入类型 non_empty_date
  2. 例外:如果日期列是 1900-01-01,则给出 with_1900
  3. 如果日期列为 Null 且出现在非空日期之后,请给出 'Null_Comes_After_non_empty_date'
  4. 如果日期列为 Null 并且出现在空日期之后给出 'Null_Comes_After_empty_date'

到目前为止,我在表达式构建器中尝试定义类型的是:

case (
Date == toDate(toString('1900-01-01')),'with_1900',
!isNull(Date), 'non_empty_date'
)

我很困惑,应该写什么表达式来为 3) 和 4) 赋值。

感谢任何帮助或任何建议。非常感谢!

您的逻辑基于上一行的值。为此,请使用 Window 转换,该转换设置为使用 Range by 1 row behind 回顾前一行值。