查询表中的多个列

时间:2014-04-04 17:40:54

标签: sql database oracle11g

我有一份员工表格,格式如下:

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;

1 个答案:

答案 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