如何在m列中生成n行的排列或组合?

Nik*_*lin 21 sql combinations

有没有人知道如何从n行表中创建一个包含m列的表,其中每行的列中的值表示原始表中值的不同组合或排列?

例如,原始表有1列(number_value),其中包含3(n = 3)行:

1
2
3
Run Code Online (Sandbox Code Playgroud)

包含两个值(m = 2)的组合(顺序无关紧要)的表格如下:

number1, number2
1,2
1,3
2,3
Run Code Online (Sandbox Code Playgroud)

排列表如下:

number1, number2
1, 2
2, 1
1, 3
3, 1
2, 3
3, 2
Run Code Online (Sandbox Code Playgroud)

行的顺序无关紧要.

先感谢您!

Mar*_*ers 31

组合:

SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x < T2.x
Run Code Online (Sandbox Code Playgroud)

排列:

SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x != T2.x
Run Code Online (Sandbox Code Playgroud)

我假设原始表中的值是唯一的.

要概括m的较大值,您需要添加更多连接.