如何在 m 列中生成 n 行的排列或组合?
Posted
技术标签:
【中文标题】如何在 m 列中生成 n 行的排列或组合?【英文标题】:How to generate a permutations or combinations of n rows in m columns? 【发布时间】:2011-05-08 18:12:22 【问题描述】:有谁知道如何从 n 行的表中创建一个包含 m 列的表,其中每行的列中的值代表原始表中值的不同组合或排列?
例如,原始表有 1 列 (number_value) 和 3 (n=3) 行:
1
2
3
包含两个值 (m = 2) 的组合(顺序无关紧要)的表格如下:
number1, number2
1,2
1,3
2,3
排列表如下:
number1, number2
1, 2
2, 1
1, 3
3, 1
2, 3
3, 2
行的顺序无关紧要。
提前谢谢你!
【问题讨论】:
【参考方案1】:组合:
SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x < T2.x
排列:
SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x != T2.x
我假设原始表中的值是唯一的。
要概括更大的 m 值,您需要添加更多连接。
【讨论】:
以上是关于如何在 m 列中生成 n 行的排列或组合?的主要内容,如果未能解决你的问题,请参考以下文章