Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 排列多个表中的列以生成新表_Sql_Sql Server_Sql Server 2008_Automation_Qa - Fatal编程技术网

Sql 排列多个表中的列以生成新表

Sql 排列多个表中的列以生成新表,sql,sql-server,sql-server-2008,automation,qa,Sql,Sql Server,Sql Server 2008,Automation,Qa,我正在尝试自动化一个测试,其中我们有5个配置表,每个表都有一组固定的记录,如: 表1有1列名称:A、B、C、D、E、F、G、H、I、J 表2-有1列-编号:1,2,3,4,5 表3-有1列-格里卡:α、β、γ、δ、θ 表4-有1列-AAlpha:A1、A2 表5-有1列-字母:KKK、JJJ、HHH 基于以上内容,我需要从上述5个表中生成所有可能的排列组合,并填充表6,表6应该包含所有上述表中的所有列以及所有可能值的排列组合。基本上是对所有内容的排列 我需要使用SQL Server 2008进行

我正在尝试自动化一个测试,其中我们有5个配置表,每个表都有一组固定的记录,如:

表1有1列名称:A、B、C、D、E、F、G、H、I、J

表2-有1列-编号:1,2,3,4,5

表3-有1列-格里卡:α、β、γ、δ、θ

表4-有1列-AAlpha:A1、A2

表5-有1列-字母:KKK、JJJ、HHH

基于以上内容,我需要从上述5个表中生成所有可能的排列组合,并填充表6,表6应该包含所有上述表中的所有列以及所有可能值的排列组合。基本上是对所有内容的排列


我需要使用SQL Server 2008进行此操作。

这将生成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

这将产生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

如果你发布到目前为止所做的尝试,而不是让这里的用户为你完成整个项目,你很可能会得到更好的结果。作为补充说明,研究
交叉连接
应该可以解决你的问题。您好,阿芙。。。我真的不知道该怎么开始。。。谢谢你给我指点方向。你太棒了!!我将研究交叉连接,看看我能如何最好地尝试它。任何其他建议也是最受欢迎的:)如果你发布你迄今为止尝试过的内容,而不是让这里的用户为你完成整个项目,你很可能会得到更好的结果。顺便说一句,研究<代码>交叉连接应该可以解决你的问题。。。我真的不知道该怎么开始。。。谢谢你给我指点方向。你太棒了!!我将研究交叉连接,看看我能如何最好地尝试它。任何其他建议也非常受欢迎:)