Oracle 中的 NVL 函数

NVL function in Oracle

我想 select 来自 table 员工的所有数据,并与其他 table 进行内部连接,例如:

SELECT * FROM EMPLOYEE 
INNER JOIN Deparment ON Employee.Id_Department = Deparment.Deparment_Id 
    AND NVL('Mathematics', Deparment.Name);

当我执行时出现错误 ORA-00920:无效的关系运算符,我认为可能 nvl() 函数是这里的问题。

你需要在NVL('Mathematics', Deparment.Name)
之后添加一个关系运算符,比如=, !=, < 例如:

AND NVL(Deparment.Name,'Mathematics')='Physics'

你没有提到连接语句中的第二个条件也NVL()函数参数放错了。 通过假设员工部门名称为 department_name 并根据需要更改脚本来尝试此操作

SELECT *
FROM   employee
       inner join deparment
               ON employee.id_department = deparment.deparment_id
                  AND employee.department_name =
                      NVL(deparment.name, 'Mathematics');