翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
NULLIF
接受两个参数,如果二者相等则返回 NULL 值,否则返回第一个参数。
NULLIF函数等价于CASE WHEN expression1 = expression2 THEN NULL ELSE expression1 END
当结果集包含并非
NULL但你希望在聚合时视为NULL的特殊值时,NULLIF适合与AVG、MAX、MIN、SUM和COUNT等聚合函数配合使用。
另请参阅:
[SELECT] [COALESCE] [IFNULL]
语法
SELECT NULLIF(expression1, expression2) FROM <multipartIdentifier>;
参数
expression
两个任意数据类型的表达式,求值结果为 NULL 或非 NULL 值。
NULLIF函数从左到右在其参数中查找定义了排序规则函数的参数,并将该排序规则函数用于所有字符串比较。如果两个参数都未定义排序规则函数,则使用BINARY排序规则。
返回值
如果两个 expression 参数的求值结果相同,则返回 NULL,否则返回第一个值。
示例
统计某字段不等于给定值的记录数
SELECT COUNT(NULLIF(name, 'controller-0'))
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
/*
equivalent to:
SELECT COUNT(*) FROM google.compute.instances
WHERE name != 'controller-0';
*/