首页 > 解决方案 > 如何获得每一个可能的不同组合?

问题描述

鉴于以下

CREATE TABLE #Test 
(
ItemName VARCHAR(2)
);

INSERT INTO #Test (ItemName)
VALUES  ('x1'),
    ('x2'),
    ('x3'),
    ('x4');

无论值的顺序如何,如何获得所有可能的组合?例如 x1, x2 与 x2, x1 相同,所以我不需要两者。此外,x1, x2, x3 将与 x3, x1, x2 或 x2, x1, x3 相同

输出将是:

x1, x2
x1, x3
x1, x4
x2, x3
x2, x4
x3, x4
x1, x2, x3
x1, x2, x4
x1, x3, x4
x2, x3, x4
x1, x2, x3, x4

我的值可能会达到 x16,因此为了示例,我试图保持简单。

我读过很多类似的问题,但它们都只结合了 2 个值。

谢谢!

标签: sqlsql-server

解决方案


推荐阅读