我有一个返回结果集的查询,如下所示:
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
答案 0 :(得分:4)
您可以通过自我加入获得此内容,如下所示:
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