📜  PostgreSQL – NULLIF()函数(1)

📅  最后修改于: 2023-12-03 15:03:49.413000             🧑  作者: Mango

PostgreSQL – NULLIF()函数

在 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() 函数的语法和使用场景。