P_A*_*_Ar 4 sql sql-server join
在创建 SQL 查询时需要帮助。有点困惑所以问问题。情况如下:
我有一张表 EmpInfo:
EmpFirstName, EmpLastName, EmpID, EmpGender, EmpDOB, EmpAddress
Table2 EmpMasterID:
EmpID1, EmpId2, AbsoluteEmpID
EmpInfo 包含示例数据:
EmpFirstName | EmpLastName | EmpID | EmpGender | EmpDOB | EmpAddress
First1 | Last1 | 10 | M | 1/1/92 | Addr1
First2 | Last2 | 20 | F | 1/12/92 | Addr2
First3 | Last3 | 30 | F | 1/12/94 | Addr3
First4 | Last4 | 40 | M | 1/2/94 | Addr4
First5 | Last5 | 60 | M | 1/1/91 | Addr5
First6 | Last6 | 70 | F | 1/12/92 | Addr6
First7 | Last7 | 80 | F | 1/12/95 | Addr7
First8 | Last8 | 90 | M | 1/2/97 | Addr8
Run Code Online (Sandbox Code Playgroud)
EmpMasterID 样本数据:
EmpID1 | EmpId2 | AbsoluteEmpID
10 | 20 | 10
60 | 70 | 60
Run Code Online (Sandbox Code Playgroud)
现在我必须连接这两个表并获取以下列:
EmpID, EmpFirstName, EmpLastName, AbsoluteEmpID
如果出现以下情况,AbsoluteEmpID 的值将从 EmpMasterID 表中获取,EmpInfo.EmpID = EmpMasterID.EmpID1 OR EmpInfo.EmpID = EmpMasterID.EmpID2
否则 AbsoluteEmpID 的值将为 EmpID 本身。
请帮忙。
谢谢。
这将加入 onEmpID1或 on EmpID2。如果两者都失败,left join请确保您获得一行null,然后只需替换null为empid:
select ei.EmpID,
ei.EmpFirstName,
ei.EmpLastName,
isnull(em.AbsoluteEmpID, ei.EmpID) as AbsoluteEmpID
from EmpInfo ei
left join EmpMasterID em on ei.empid = em.EmpID1 or ei.empid = em.EmpID2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12844 次 |
| 最近记录: |