2011-04-04 98 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