搜索并比较列以创建新列 (Teradata SQL)

Search and Compare Columns to Create New Columns (Teradata SQL)

我有一个包含促销活动历史记录的数据集,我需要创建一个列来显示促销是否仍然有效。我的数据集如下所示:

item | original_price | sale1 | sale2 | sale3 | current_price
-----|----------------|-------|-------|-------|--------------
1    | 3.00           | 2.75  | ?     | ?     | 2.75
2    | 4.00           | ?     | 3.50  | ?     | 4.00
3    | 10.00          | 7.50  | ?     | 8.50  | 8.50

item 1 的情况下,新字段应显示 active,因为该商品仍处于 sale1 价格。 Item 2 应该说 nonactive,因为价格不再是促销价。
Item 3 打折,然后不打折,现在又打折了 活跃
因此,SQL 需要提取所有这些字段,并通过将 current_price 与最新的 salex 变量进行比较来创建一个新列。

我需要在当前的 SQL 流程中实现它,但不知道如何在语法上做到这一点。谢谢。

这似乎符合您的定义:

case
   when coalesce(sale3, sale2, sale1) = current_price then 'active'
   else 'nonactive'
end