SQL-创建所有可能的组合
我有几个类,我想创建所有可能的组合 类表 输出不是这样,如果我有A,B作为输出,我也不想要B,A,等等SQL-创建所有可能的组合,sql,sql-server,Sql,Sql Server,我有几个类,我想创建所有可能的组合 类表 输出不是这样,如果我有A,B作为输出,我也不想要B,A,等等 ColA Col2 A B A C A D A E B C B D B E C D C E D E 我不想使用游标。您可以通过添加一个条件来实现这一点: CREATE TABLE #a (a CHAR(1)); INSERT INTO #a VA
ColA Col2
A B
A C
A D
A E
B C
B D
B E
C D
C E
D E
我不想使用游标。您可以通过添加一个条件来实现这一点:
CREATE TABLE #a (a CHAR(1));
INSERT INTO #a VALUES ('A');
INSERT INTO #a VALUES ('B');
INSERT INTO #a VALUES ('C');
INSERT INTO #a VALUES ('D');
INSERT INTO #a VALUES ('E');
SELECT a.a, b.a FROM #a a CROSS JOIN #a b
--If you do not need the same combinations such as AA then do like that
SELECT a.a, b.a FROM #a a CROSS JOIN #a b WHERE a.a <> b.a
select c1.cola as col1, c2.cola as col2
from class c1 join
class c2
on c1.cola < c2.cola;
试试这个
DECLARE @t TABLE ( ID CHAR(1) )
INSERT INTO @t VALUES ( 'A' )
INSERT INTO @t VALUES ( 'B' )
INSERT INTO @t VALUES ( 'C' )
INSERT INTO @t VALUES ( 'D' )
INSERT INTO @t VALUES ( 'E' )
;WITH cte
AS ( SELECT ID ,
ROW_NUMBER() OVER ( ORDER BY (SELECT 1) ) AS rn
FROM @t
)
SELECT t1.ID ,
t2.ID
FROM cte t1
JOIN cte t2 ON t2.rn > t1.rn
ORDER BY t1.ID ,
t2.ID
要创建上面提供的类的所有可能组合。从_表t1交叉连接_表t2中选择t1.colA作为colA,t2.colA作为Col2;我只想要这两个{ab,ba}中的一行。。和交换规则AB=BAThis一样,这个答案绝对不应该被否决。
DECLARE @t TABLE ( ID CHAR(1) )
INSERT INTO @t VALUES ( 'A' )
INSERT INTO @t VALUES ( 'B' )
INSERT INTO @t VALUES ( 'C' )
INSERT INTO @t VALUES ( 'D' )
INSERT INTO @t VALUES ( 'E' )
;WITH cte
AS ( SELECT ID ,
ROW_NUMBER() OVER ( ORDER BY (SELECT 1) ) AS rn
FROM @t
)
SELECT t1.ID ,
t2.ID
FROM cte t1
JOIN cte t2 ON t2.rn > t1.rn
ORDER BY t1.ID ,
t2.ID