SQL 处理 table 中的数据 - 使用哪些技术?

SQL handle data in table - which techniques to use?

我想在一个 table 中处理数据,这是 table 这样的:

这是我的 table:

ID  Name    Role    WID
-----------------------
1   Flo     EMP     888
2   Jack    MIDMAN  888
3   Bison   BOSS    888

而我只想获取一行并像这样添加老板信息:

ID  Name    Boss        WID 
---------------------------
1   Flo     Bison       888

我做了这个查询:

select
    ID,
    Name,
    (SELECT Name FROM Employee WHERE Role = 'BOSS' and  WID = 888) AS Boss,
    WID
    from Employee
where WID = 888
and Role <> 'BOSS' and Role <> 'MIDMAN'

还有其他 better/cleaner 方法吗?我尝试了自加入但没有成功...

自连接示例 -

select e1.id,e1.name,e2.name as boss,e1.wid
from Employee e1 inner join Employee e2
on e1.wid = e2.wid
and e1.role = 'EMP' and e2.role = 'BOSS'

您可以使用联接作为

select a.Name. b.Name as Boss, a.WID
from Employee a 
inner join Employee b on and a.WID = 888 and a.WID = b.WID 
      and b.role ='BOSS' and a.Role NOT IN (BOSS', 'MIDMAN')

试试这个:

select [EMP].ID,
       [EMP].Name [Name],
       [BOSS].Name [Boss],
       [EMP].WID
from (
    select Name, 'EMP', WID from MY_TABLE where Role = 'EMP'
) as [EMP] join (
    select Name, 'BOSS', WID from MY_TABLE where Role = 'BOSS'
) as [BOSS] on [EMP].WID = [BOSS].WID