Oracle中的NVL功能

时间:2017-10-04 06:16:20

标签: sql oracle nvl

我想从表employee中选择所有数据,并与其他表进行内连接,例如:

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

当我执行时,我收到错误ORA-00920:无效的关系运算符,我想可能nvl()函数是问题所在。

2 个答案:

答案 0 :(得分:2)

您需要在=, !=, <之后添加NVL('Mathematics', Deparment.Name)之类的关系运算符 举个例子:

  

AND NVL(Deparment.Name,'Mathematics')='物理'

答案 1 :(得分:1)

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

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