SQL:在查询中添加来自不同列值的结果行

时间:2016-12-17 00:01:41

标签: sql sql-server

我有两个表如下所示(当然有更多列):

+------+--------+
| Name | DeptID |
+------+--------+
| John |     10 |
| John |     22 |
| John |     18 |
+------+--------+

+------+--------+
| Name |ClientID|
+------+--------+
| John |      5 |
| John |      5 |
| John |      5 |
+------+--------+

我试图得到的结果如下:

+------+------+
| Name | Dept |
+------+------+
| John |    5 |
| John |   10 |
| John |   22 |
| John |   18 |
+------+------+

但是,我似乎无法弄清楚如何将ClientID和DeptID组合在一起并获取唯一ID的附加行。

我尝试使用CASE:

CASE
    WHEN t1.DepID <> t2.ClientId
    THEN t1.DepID
    ELSE t2.ClientId
END

但是当我想要4个时,我最终得到了3个不同的ID。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

道格拉斯!

您可以使用UNION子句来解决问题。

试一试:

SELECT name 
     , deptId
  FROM from dept
UNION
SELECT name
     , clientId
  FROM client

答案 1 :(得分:-1)

SELECT * FROM DEPT 联盟    SELECT * FROM客户端