我有一份员工表格,格式如下:
EMPLOYEE (FNAME,MINIT,LNAME,SSN(PK),BDATE,SUPERSSN(NULLABLE))
我需要查询每位员工并检索以下信息:
FNAME(雇员),L-NAME(雇员),SUPERSSN,(超)FNAME,(超)L-NAME
已更新
运行此查询后:
SELECT A.FNAME,A.LNAME,A.SUPERSSN,B.FNAME,B.LNAME
FROM EMPLOYEE
A LEFT JOIN EMPLOYEE B
ON A.SUPERSSN = B.SSN;
结果很接近,但是当superssn为null(CEO / Boss)时,它导致剩余的行也填充为null,并且没有填充实际的主管ssn。我尝试使用IF语句来解决问题,使得SuperSSN为null,但我收到错误:ORA-00905:缺少关键字。
以下是我运行的生成错误的查询。
SELECT A.FNAME,A.LNAME,A.SUPERSSN,B.FNAME,B.LNAME
FROM EMPLOYEE A LEFT IF A.SUPERSSN <> 'NULL'
JOIN EMPLOYEE B ON A.SUPERSSN = B.SSN;
答案 0 :(得分:1)
Select A.FName,
A.LNAme,
A.SuperSSN,
B.FName,
B.LName
from Employee A
Left Join Employee B
On A.SuperSSN = B.SSN