条件函数 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

条件函数

Amazon S3 Select 和 S3 Glacier Select 支持以下条件函数。

CASE

CASE 表达式是一种条件表达式,类似于其他语言中发现的 if/then/else 语句。CASE 用于指定存在多个条件时的结果。有两种类型的 CASE 表达式:简单和搜索。

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

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

语法

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

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

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

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

示例

使用简单 CASE 表达式可在查询中将 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 ... (202 rows)

使用搜索 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.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ... (172456 rows)

COALESCE

按顺序评估参数并返回第一个非未知值,即第一个非空或非缺失值。此函数无法传播空值和缺失值。

语法

COALESCE ( expression, expression, ... )

参数

expression

对其执行函数的目标表达式。

示例

COALESCE(1) -- 1 COALESCE(null) -- null COALESCE(null, null) -- null COALESCE(missing) -- null COALESCE(missing, missing) -- null COALESCE(1, null) -- 1 COALESCE(null, null, 1) -- 1 COALESCE(null, 'string') -- 'string' COALESCE(missing, 1) -- 1

NULLIF

指定两个表达式,如果两个表达式的计算结果为相同值,则返回空;否则返回第一个表达式的计算结果。

语法

NULLIF ( expression1, expression2 )

参数

expression1,expression2

对其执行函数的目标表达式。

示例

NULLIF(1, 1) -- null NULLIF(1, 2) -- 1 NULLIF(1.0, 1) -- null NULLIF(1, '1') -- 1 NULLIF([1], [1]) -- null NULLIF(1, NULL) -- 1 NULLIF(NULL, 1) -- null NULLIF(null, null) -- null NULLIF(missing, null) -- null NULLIF(missing, missing) -- null