我正在尝试自动化测试,我们有5个配置表,每个配置表都有一组固定的记录,如:
表1 - 有1列 - 名称:A,B,C,D,E,F,G,H,I,J
表2 - 有1列 - 编号:1,2,3,4,5
表3 - 有1列 - GreekA:Alpha,Beta,Gamma,Delta,Theta
表4 - 有1列 - AAlpha:A1,A2
表5 - 有1列 - 字母:KKK,JJJ,HHH
基于以上所述,我需要从上面的5个表中生成所有可能的排列组合,并填充Table6,它应该包含来自所有上表的所有列以及所有可能值的组合permutated。基本上是所有内容的排列。
我需要使用SQL Server 2008。
答案 0 :(得分:2)
这将生成包含所有组合的1500行。
DECLARE @tbl1 TABLE([Name] VARCHAR(100));
INSERT INTO @tbl1 VALUES('A'),('B'),('C'),('D'),('E'),('F'),('G '),('H '),('I '),('J');
DECLARE @tbl2 TABLE([Number] INT);
INSERT INTO @tbl2 VALUES(1),(2),(3),(4),(5);
DECLARE @tbl3 TABLE([GreekA] VARCHAR(100));
INSERT INTO @tbl3 VALUES ('Alpha'),('Beta'),('Gamma'),('Delta'),('Theta');
DECLARE @tbl4 TABLE([AAlpha] VARCHAR(100));
INSERT INTO @tbl4 VALUES ('A1'),('A2');
DECLARE @tbl5 TABLE([Letter] VARCHAR(100));
INSERT INTO @tbl5 VALUES ('KKK'),('JJJ'),('HHH');
SELECT *
FROM @tbl1
CROSS JOIN @tbl2
CROSS JOIN @tbl3
CROSS JOIN @tbl4
CROSS JOIN @tbl5