当 您在 SQL编辑器中输入查询或创建 计算时,您将使用 PrestoSQL语法。要根据特定条件是否满足来返回值,您可能会发现以下常用表达式很有用。
案件
要评估一系列条件并根据第一个匹配项或真条件返回一个值,请使用 CASE 表达式,例如启用 if/else 逻辑。CASE有两种格式:
- 简单形式 CASE
会计算列表中是否存在特定表达式,并返回其值,例如:
CASE 表达式 WHEN 值 THEN 结果 [ WHEN ... ] [ ELSE 结果 ] END
- 在 搜索 形式中,
CASE会评估一个布尔值列表,并返回第一个TRUE条件的值,例如:
CASE WHEN 条件 THEN 结果 [ WHEN ... ] [ ELSE 结果 ] END
例如,最简单的写法是根据匹配的表达式返回一个值(“一”或“二”):
SELECT 表达式, CASE 表达式 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'many' END
如果没有条件为真,则CASE返回 ELSE 子句的值(在本例中为“many”),如果没有 ELSE 子句,则返回 NULL 。
注意:要根据单个条件是否为真返回一个值,请使用IF 语句
。 合并
要返回列表中的第一个非空值,请使用 COALESCE 表达式,例如 COALESCE(value1, value2, value3)。
如果
要根据条件是真还是假返回一个值,请使用 IF 语句,例如 IF(condition, true_value, false_value)。
注意 :如果条件
为假且未指定 false_value , 则IF 语句返回 NULL。 为空或不为空
要测试一个值是否为空或 为NULL ,请使用 IS NULL或 NOT NULL运算 符:
- 要测试空值,请使用
IS NULL。 - 要测试值是否非空,请使用
IS NOT NULL。
例如,要测试没有地址的客户数据:
SELECTCustomer_Name , Contact_Name,FROM Customers WHERE
Address
Address IS NULL
土耳其里拉
当表达式因数据损坏或无效而失败时,要返回 NULL ,请使用 TRY 表达式,如 TRY(表达式)。TRY 处理以下错误:
- 除以零
- 无效的
CAST或函数参数 - 数值超出范围
注意:如果表达式执行失败, 要返回默认值而不是 NULL , 请使用带有 COALESCE 表达式的 TRY 语句,例如 COALESCE(TRY(表达式 ) ,默认值)
。COALESCE 表达式的 TRY