在Sql中,对于高级经理,如果员工也是经理,则将其经理更新为员工姓名

时间:2019-04-29 15:55:08

标签: sql sql-server

以下是我的数据。认为这封信是唯一的雇员。高级经理(SM)的示例-答:我有一位同时也是经理的员工。然后,我想将Manager列更新为与Employee相同。对于高级经理B,没有员工是经理,因此无需执行任何操作。如何更新“经理”列? 预期结果如下。

数据:

 Senior Manager Manager Employee

    A           NULL    X
    A           NULL    Y
    A           NULL    Z
    A           X       C
    A           Y       D
    A           Z       E
    B           NULL    F
    B           NULL    G

预期结果

 Senior Manager Manager Employee
    A           X       X
    A           Y       Y
    A           Z       Z
    A           X       C
    A           Y       D
    A           Z       E
    B           NULL    F
    B           NULL    G

1 个答案:

答案 0 :(得分:0)

我认为在这里使用COALESCE()进行一些自我加入动作应该可以使您进入球场:

SELECT Employee.[Senior Manager], 
    COALESCE(Employee.[Manager], [Manager].[Manager]) as [Manager], 
    Employee.Employee
FROM [Table] as [Employee]
    LEFT OUTER JOIN [Table] as [Manager]
        ON [Employee].[Employee] = [Manager].[Manager]