【发布时间】:2013-06-02 17:55:51
【问题描述】:
这可能更像是一个设计问题,但我希望没有太多巫术是可能的。
假设我有这样一张桌子:
SELECT * FROM stuff;
id grp
1 a
2 a
3 a
1 b
2 b
4 b
我想得到这样的东西(ID 分组在列中):
a.id b.id
1 1
2 2
3 null
null 4
这可能吗?我已经尝试了以下查询...
SELECT a.id, b.id FROM stuff a
FULL OUTER JOIN stuff b ON a.id = b.id
WHERE a.grp = 'a' AND b.grp = 'b';
...但我只得到公共节点:
a.id b.id
1 1
2 2
我也尝试过使用 JOIN ON 和 WHERE,但似乎无法获得所需的结果。
我能在网上找到的最接近的问题是this one,但我也无法让 UNION 工作。
性能不是问题,我可以假设只有 2 个组。
有什么想法吗?
【问题讨论】:
-
当您按照另一个问题的答案并尝试使用
UNION时发生了什么? -
我得到的结果与您在下面 Gordon 的建议中得到的结果相似。
标签: sql oracle full-outer-join