只选择具有不同值的行

时间:2014-08-26 19:31:37

标签: sql sas

我想选择两行不同的值

Obs  x   y   z
1   23  49  16
2   23  16  83
3   49  16  83
4   23  49  83
5   23  83  75
6   49  83  75
7   16  83  75
8   23  16  75
9   49  16  75
10  23  49  75
11  23  75  42
12  49  75  42
13  16  75  42
14  83  75  42
15  23  83  42
16  49  83  42
17  16  83  42
18  23  16  42
19  49  16  42
20  23  49  42

表名称称为MyData,它是一个20 * 3的表。如果仔细观察行,你总会发现两行具有不同的价值......我希望它们都出来并制作一个新的10 * 6表。

例如

23 49 16应与83 75 42结合

23 16 83应与49 75 42结合

...

决赛桌应如下:( 10 * 6桌)

a b c d e f

23 49 16 83 75 42

23 16 83 49 75 42 ...

1 个答案:

答案 0 :(得分:1)

如果您指的是所有行具有不同值的所有行的自我加入:

SELECT *
FROM tab t1
JOIN tab t2
ON t1.x NOT IN (t2.x,t2.y,t2.z)
AND t1.y NOT IN (t2.x,t2.y,t2.z)
AND t1.z NOT IN (t2.x,t2.y,t2.z)