Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导出列';从SQL中的匹配列中删除数据_Sql_Database_Oracle - Fatal编程技术网

导出列';从SQL中的匹配列中删除数据

导出列';从SQL中的匹配列中删除数据,sql,database,oracle,Sql,Database,Oracle,所以我有一个表,有,员工编号,员工姓名,主管编号 我想运行一个查询,检索员工姓名、员工编号、主管姓名和主管编号。只有一名员工没有主管,这意味着必须显示空值。我该怎么做?我正在使用Oracle SQL Plus。我的尝试根本不起作用!任何帮助都将不胜感激 SELECT ename Employee, empno Emp#, super Manager# FROM emp; 这让我得到了三个专栏,但老实说,我甚至不知道从哪里开始得到主管的名字 这是为了上大学,但我学习是为了考试,不是为了作业,所以

所以我有一个表,有,员工编号,员工姓名,主管编号

我想运行一个查询,检索员工姓名、员工编号、主管姓名和主管编号。只有一名员工没有主管,这意味着必须显示空值。我该怎么做?我正在使用Oracle SQL Plus。我的尝试根本不起作用!任何帮助都将不胜感激

SELECT ename Employee, empno Emp#, super Manager#
FROM emp;
这让我得到了三个专栏,但老实说,我甚至不知道从哪里开始得到主管的名字


这是为了上大学,但我学习是为了考试,不是为了作业,所以这里没有作弊:)

假设
SupervisorNumber
是返回到
Employee
表的外键关系(其中是主管记录的
EmployeeNumber
),则需要使用外部联接

在这种情况下,您需要的是
连接:

select
    e.EmployeeName,
    e.EmployeeNumber,
    s.EmployeeName as SupervisorName

from Employee e

left join Employee s on s.EmployeeNumber = e.SupervisorNumber

如果员工没有主管,则以下操作应有效,并为空:

SELECT empGrunt.ename Employee
     , empGrunt.empno EmpNum
     , empSuper.ename SupervisorName
     , empSuper.empno SupervisorName
FROM   emp empGrunt LEFT OUTER JOIN emp empSuper 
       ON empGrunt.super = empSuper.empno

你需要向我们展示你的尝试。还有,这是学校用的吗?为了澄清我的理解,grunt和super只是为了区分员工和主管而使用的假名?然后您只检索了grunt数据,然后将这两个数据连接在一起,并说主管的内容是从grunt表派生的?谢谢你的帮助
empGrunt
empsuber
是为查询中涉及的
emp
表的两个不同实例提供的别名。这很有意义!谢谢你,再见!那么你通过join链接了员工编号和主管姓名?非常感谢