选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

CASE 条件表达式 - Amazon Redshift

CASE 条件表达式

CASE 表达式是一种条件表达式,类似于其他语言中发现的 if/then/else 语句。CASE 用于指定存在多个条件时的结果。在 SQL 表达式有效的情况下使用 CASE,例如在 SELECT 命令中。

有两种类型的 CASE 表达式:简单和搜索。

  • 在简单 CASE 表达式中,将一个表达式与一个值比较。在找到匹配项时,将应用 THEN 子句中的指定操作。如果未找到匹配项,则应用 ELSE 子句中的操作。

  • 在搜索 CASE 表达式中,基于布尔表达式计算每个 CASE,而且 CASE 语句会返回第一个匹配的 CASE。如果在 WHEN 子句中未找到匹配,则返回 ELSE 子句中的操作。

语法

用于匹配条件的简单 CASE 语句:

CASE expression WHEN value THEN result [WHEN...] [ELSE result] END

用于计算每个条件的搜索 CASE 语句:

CASE WHEN condition THEN result [WHEN ...] [ELSE result] END

参数

expression

一个列名称或任何有效的表达式。

与该表达式比较的值,如数字常数或字符串。

result

计算表达式或布尔条件时返回的目标值或表达式。所有结果表达式的数据类型必须可转换为单一输出类型。

condition

计算结果为 true 或 false 的 Boolean 表达式。如果 condition 为 true,则 CASE 表达式的值是符合条件的结果,不处理 CASE 表达式的其余部分。如果 condition 为 false,则计算任何后续的 WHEN 子句。如果没有 WHEN 条件结果为 true,则 CASE 表达式的值是 ELSE 子句的结果。如果没有 ELSE 子句且没有条件为 true,则结果为 null。

示例

以下示例使用 TICKIT 样本数据中的 VENUE 表和 SALES 表。有关更多信息,请参阅 示例数据库

使用简单 CASE 表达式在针对 VENUE 表的查询中将 New York City 替换为 Big Apple。将所有其他城市名称替换为 other

select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc; venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...

使用搜索 CASE 表达式来基于单个门票销售的 PRICEPAID 值分配组编号:

select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc; pricepaid | case ----------+--------- 12624 | group 2 10000 | group 3 10000 | group 3 9996 | group 1 9988 | group 1 ...

下一主题:

DECODE

上一主题:

条件表达式
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。