Press "Enter" to skip to content

SQL Case When语句的3个使用案例

用示例解释

Tobias Fischer在Unsplash上的照片

简单来说,CASE WHEN语句根据给定的条件进行评估,并根据评估结果返回结果。

我们可以使用它从现有列中派生新列。但是,在解决复杂任务时,CASE WHEN还有其他用途。

本文将学到的内容:

  • 使用CASE WHEN派生新列
  • GROUP BY中使用CASE WHEN
  • 根据派生类别计算聚合的时候使用CASE WHEN

我们将查询一个我创建的带有模拟数据的product_inventory表。这是该表的前五行:

(image by author)

1. 使用Case When派生新列

CASE WHEN(或CASE)语句允许评估条件,并使用评估结果创建新列。

(image by author)

例如,我们可以根据产品价格创建一个名为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
上述查询的前10行输出(image by author)

CASE WHEN语句根据以下条件创建product_column

  • 如果价格高于20,则值为“high”。
  • 如果价格介于10和20之间,则值为“VoAGI”。
  • 如果价格小于10,则值为“low”。

我们也可以将此查询写成以下形式:

SELECT product_description, price, CASE  WHEN price > 20 THEN 'high'  WHEN…
Leave a Reply

Your email address will not be published. Required fields are marked *