用示例解释
简单来说,CASE WHEN
语句根据给定的条件进行评估,并根据评估结果返回结果。
我们可以使用它从现有列中派生新列。但是,在解决复杂任务时,CASE WHEN
还有其他用途。
本文将学到的内容:
- 使用
CASE WHEN
派生新列 - 在
GROUP BY
中使用CASE WHEN
- 根据派生类别计算聚合的时候使用
CASE WHEN
我们将查询一个我创建的带有模拟数据的product_inventory
表。这是该表的前五行:
1. 使用Case When派生新列
CASE WHEN
(或CASE
)语句允许评估条件,并使用评估结果创建新列。
例如,我们可以根据产品价格创建一个名为price_group
的新列,其值为low、VoAGI、high。可以将其视为创建产品价格组。
SELECT product_description, price, CASE WHEN price > 20 THEN 'high' WHEN price <= 20 AND price > 10 THEN 'VoAGI' WHEN price <= 10 THEN 'low' END AS price_groupFROM product_inventory
CASE WHEN
语句根据以下条件创建product_column
:
- 如果价格高于20,则值为“high”。
- 如果价格介于10和20之间,则值为“VoAGI”。
- 如果价格小于10,则值为“low”。
我们也可以将此查询写成以下形式:
SELECT product_description, price, CASE WHEN price > 20 THEN 'high' WHEN…