Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 server 2008 列的所有置换_Sql Server 2008 - Fatal编程技术网

Sql server 2008 列的所有置换

Sql server 2008 列的所有置换,sql-server-2008,Sql Server 2008,SQL Server 2008 我有很多问题q,每个问题都有几个答案a declare @table table ( q tinyint, a tinyint ) insert into @table values (1,1), (1,2), (2,1), (3,1), (3,2)

SQL Server 2008

我有很多问题q,每个问题都有几个答案a

declare @table table (
  q tinyint,
  a tinyint
)

insert into @table values (1,1),
                          (1,2),
                          (2,1),
                          (3,1),
                          (3,2),
                          (3,3)
是否有一个查询将返回一组问题的所有答案排列

例如,如果问题集是1和3,那么我需要所有问题1和3可以一起回答的排列。第一个问题(问题1)可以两种方式回答,第二个问题(问题3)可以三种方式回答。因此,结果集将是(第一列仅对答案集进行分组):

问题输入列表是动态的,即它可以是整个问题列表的任何子集。问题数量和每个问题的答案数量也是动态的,即提前未知


谢谢

我不明白结果从何而来。“如果q的集合为1和2”表示前4行。不是你说的5。g1和g2来自哪里?是的,这是一个小组,但规则是什么?当你发布一个问题时,最好留下来回答这种澄清的请求。我不知道你从哪里得到你的预期结果,我怀疑它们可能是不正确的。问题是给定一组q的c的所有排列。为了保持简单(删除给定q/c组合的多行),如果我有1,1;1,2; 2,1; 2,2; 2,3,我想要第一列集合中第二列的所有唯一组合。因此,集合为1,1/2,1;1,1/2,2; 1,1/2,3; 1,2/2,1; 1,2/2,2; 这是一个交叉连接。但是交叉连接并不能给出示例数据问题中所需的结果。好的,我已经按照同样的思路进行了工作,到目前为止,结果仍然不正确。
s1,1,1
s1,3,1

s2,1,1
s2,3,2

s3,1,1
s3,3,3

s4,1,2
s4,3,1

s5,1,2
s5,3,2

s6,1,2
s6,3,3