📅  最后修改于: 2023-12-03 15:33:15.538000             🧑  作者: Mango
nvl2
是一个 SQL 函数,用于判断某个值是否为 NULL
,并在满足条件时返回一个值,不满足条件时返回另一个值。
nvl2(expr1, expr2, expr3)
expr1
:需要判断的表达式。expr2
:当 expr1
不为 NULL
时返回的值。expr3
:当 expr1
为 NULL
时返回的值。假设有一个表 employees
,其中有一个列 manager_id
记录员工的直属领导的员工 ID。现在需要查询每个员工的直属领导的姓名和工资,如果该员工没有直属领导,则返回 'No manager'。
SELECT e.first_name || ' ' || e.last_name AS employee_name,
NVL2(m.first_name || ' ' || m.last_name, m.first_name || ' ' || m.last_name, 'No manager') AS manager_name,
NVL2(m.salary, m.salary, 0) AS manager_salary
FROM employees e LEFT JOIN employees m
ON e.manager_id = m.employee_id;
NVL2(m.first_name || ' ' || m.last_name, m.first_name || ' ' || m.last_name, 'No manager')
:判断直属领导的姓名是否存在,如果存在则返回直属领导的姓名,否则返回 'No manager'。NVL2(m.salary, m.salary, 0)
:判断直属领导的工资是否存在,如果存在则返回直属领导的工资,否则返回 0。nvl2
函数是一个非常实用的函数,可以用于在 SQL 查询中处理 NULL 值,让我们的数据更加完整和准确。