如何合并来自不同表的具有相同名称但在SQL Server中具有不同值的两列

时间:2019-02-27 03:33:10

标签: sql sql-server

我有三个表(示例STAFF, STU, EMP

tables

我想将表EMPID中的列STAFF和表EMP合并为1列?

我之前的查询是这样的,

SELECT *
FROM STU s 
FULL OUTER JOIN STAFF st ON st.STAFFID = STUID 
FULL OUTER JOIN EMP e ON s.STUID = st.EMPID

结果是这样的

Result

预期结果与上面的屏幕截图一样,但是我只想将 EMPID 加入一列。

更新

我尝试使用此查询:

SELECT 
    stu.stuid, stu.stuname, stu.stucode,
    s.staffid, s.staffname, s.staffcode,
    emp.empname, emp.empcode, 
    COALESCE (emp.empid, staff.staffid) AS col
FROM 
    STU, Staff, EMP 
FULL OUTER JOIN 
    STAFF s ON s.STAFFID = stu.STUID
FULL OUTER JOIN  
    EMP e ON stu.STUID = s.EMPID

但是它显示出这样的错误

error

1 个答案:

答案 0 :(得分:0)

使用以下查询获得所需结果。

SELECT s.StuID, s.StuName, s.Stucode, st.StaffId, st.StaffName, st.Staffcode, isnull(st.EmpId, e.EmpId) EmpId, e.EmpCode, e.EmpName
FROM STU s FULL outer JOIN
     STAFF st
     ON st.STAFFID = STUID FULL OUTER JOIN
     EMP e
     ON s.STUID = st.EMPID

注意:您将根据需要获得一个emp Id列。如果Staff emp id不为null,则将显示职员emp id,否则将显示employee emp