📜  nvl2 语法 - SQL (1)

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

使用 nvl2 语法

nvl2 是一个 SQL 函数,用于判断某个值是否为 NULL,并在满足条件时返回一个值,不满足条件时返回另一个值。

语法
nvl2(expr1, expr2, expr3)
  • expr1:需要判断的表达式。
  • expr2:当 expr1 不为 NULL 时返回的值。
  • expr3:当 expr1NULL 时返回的值。
示例

假设有一个表 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 值,让我们的数据更加完整和准确。