【发布时间】:2021-08-26 09:57:45
【问题描述】:
我有部门映射表,其中我对特定部门具有特定状态,但对于不在部门表中的所有其他部门具有不同的状态。
dep_table:
| country | department | status |
|---|---|---|
| FIN | D1 | C |
| FIN | D2 | C |
| FIN | ** | O |
| SWE | D1 | C |
act_table:
| country | department | amt |
|---|---|---|
| FIN | D1 | 16 |
| FIN | D3 | 45 |
| SWE | D1 | 13 |
预期结果:
| country | department | amt | status |
|---|---|---|---|
| FIN | D1 | 16 | C |
| FIN | D3 | 45 | O |
| SWE | D1 | 13 | C |
我有这个,但它会导致重复的行(因为连接 ** 和非 ** 行):
SELECT t1.country, t1.department, t1.amt, t2.status
FROM act_table t1
LEFT OUTER JOIN dep_table t2
ON t1.country = t2.country
AND CASE WHEN t1.department = t2.department THEN 1 WHEN t2.department = '**' THEN 1 END = 1
(这是非常简化的场景 - 需要以这种方式完成。)
【问题讨论】:
-
你没有明确选择匹配哪一行的逻辑。