2011-04-04 72 views
1

我已返回结果的查询设置如下:甲骨文结果集组合

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

回答

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 
+0

非常感谢。你的解决方案帮了我 – DG3 2011-04-04 19:47:29