SQL - 使用 NULL 或 MAX 连接 2 个表

SQL - JOIN 2 tables with either NULL OR MAX

我在 Teradata 中有两个表需要 LEFT JOIN。 第一个包括客户,第二个包括他们的详细信息和有效期结束日期。 NULL代表当前有效。

表 1

client_id
1
2

表 2

client_id valid_end
1 31.12.2021
1 31.12.2022
2 31.12.2020
2 null

我需要使用表 2 中每个客户的最新记录左连接这两个表。 如果当前有效的记录为 NULL,则使用它。如果没有任何 NULL 记录,则使用最高日期。

结果

client_id valid_end
1 31.12.2022
2 null

使用 QUALIFY 和 MAX 进行了多次尝试,但从未达到要求的结果。谢谢指教。

使用ROW_NUMBER代替MAX,NULLS FIRST在最高日期之前对NULL进行排序:

qualify
   row_number() 
   over (partition by client_id
         order by valid_end desc NULLS FIRST) = 1