【发布时间】:2014-05-17 03:53:17
【问题描述】:
我有一张员工表格,格式如下:
EMPLOYEE (FNAME,MINIT,LNAME,SSN(PK),BDATE,SUPERSSN(NULLABLE))
我需要查询每个员工并检索以下信息:
FNAME(员工),LNAME(员工),SUPERSSN,(super)FNAME,(super)LNAME
更新
运行此查询后:
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 为空的问题,但我收到错误: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;
【问题讨论】:
-
@Tamil Selvan - 我并没有试图将其缩进为代码。它的唯一目的是简单参考我试图通过查询完成的事情。