SQL行组合

时间:2015-05-18 23:24:10

标签: sql select row combinations

我的桌子有

SNO   VA
1      A
2      A
3      A
4      A
11     B
12     B
21     C
22     C

VAL这里有3个可能的值。它可以是任何数字,最多17个,下面的输出可以有17个值连接在一起。 这里的例子是3个值

我需要输出

1,11,21
1,12,21
1,11,22
1,12,22

2,11,21
2,12,21
2,11,22
2,12,22

3,11,21
3,12,21
3,11,22
3,12,22

4,11,21
4,12,21
4,11,22
4,12,22

1 个答案:

答案 0 :(得分:1)

这是同一个表上的交叉连接三次:

SELECT     a.sno, b.sno, c.sno
FROM       mytable a
CROSS JOIN mytable b
CROSS JOIN mytable c
ON         a.val = 'A' AND b.val = 'B' AND c.val = 'C'