📅  最后修改于: 2023-12-03 15:03:49.413000             🧑  作者: Mango
在 PostgreSQL 中,NULLIF() 函数用于比较两个表达式,如果它们相等,则返回 NULL,否则返回第一个表达式的值。
NULLIF(expression1, expression2);
expression1:要比较的表达式。
expression2:要比较的表达式。
如果表达式相等,则返回 NULL,否则返回第一个表达式的值。
SELECT NULLIF(1, 1); -- 返回 NULL
SELECT NULLIF(1, 2); -- 返回 1
SELECT NULLIF('a', 'b'); -- 返回 'a'
该函数通常用于处理可能出现空值的表达式。例如,如果表格中某一列的值可能为空,则可以在查询中使用 NULLIF() 函数来处理该列上的比较或计算,以避免出现错误。
下面是一个示例,假设我们在查询一个名为 people
的表格,其中包含 age
列,该列可能包含空值。在这种情况下,我们可以从表格中查询年龄大于指定值但不等于空值的所有人。
SELECT *
FROM people
WHERE NULLIF(age, '')::int > 18;
在该查询中,我们使用了 NULLIF() 函数来将空值转换为 PostgreSQL 中可以识别的 NULL 值,并使用 ::int
将值转换为整数类型进行比较。这样,我们就可以准确地查询年龄大于指定值且不等于空值的所有人了。
NULLIF() 函数是 PostgreSQL 中处理可能为空值的表达式的常用函数之一,能够保证查询结果的准确性。在使用时,务必注意 NULLIF() 函数的语法和使用场景。