我有一个查询返回结果集,如下所示:
Col1
A
B
C
D可以得到以下结果集吗?也就是说,将一个值关联到剩余的3个行值?
col1 col2
A B
A C
A D
B A
B C
B D
C A
C B
C D
D A
D B
D C我使用的是Oracle 10g
发布于 2011-04-05 03:14:47
如下所示,您可以使用self join获得此结果:
SELECT a.col1, b.col1 as col2
FROM <YOUR_TABLE> a,
<YOUR_TABLE> b
WHERE a.col1 <> b.col1 工作示例:
WITH DAT AS
(
SELECT 'A' NAME FROM DUAL
UNION
SELECT 'B' NAME FROM DUAL
UNION
SELECT 'C' NAME FROM DUAL
UNION
SELECT 'D' NAME FROM DUAL
)
SELECT *
FROM DAT A, DAT B
WHERE a.Name <> b.Name https://stackoverflow.com/questions/5543129
复制相似问题