Hoe*_*ess -1 sql t-sql sql-server inner-join combinatorics
我有一个列名称的成分表:
Name
________
Cheese
Beans
Potato
etc
Run Code Online (Sandbox Code Playgroud)
我想在两列中显示这些值的所有可能组合,例如(奶酪,豆类)(奶酪,土豆),(豆类,土豆)等。这可能吗?

使用交叉连接:
SELECT t1.Name, t2.Name
FROM yourTable t1
CROSS JOIN yourTable t2
WHERE t1.Name <> t2.Name; -- use t1.Name < t2.Name if you don't want
-- a given pair appearing in reverse
Run Code Online (Sandbox Code Playgroud)
这将生成所有可能的名称组合,唯一的限制是我们不会成对报告两次相同的名称。