列的所有排列

时间:2013-06-12 14:17:27

标签: 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),
                          (3,3)

是否有一个查询会为一组问题带回所有答案的排列?

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

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

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

谢谢!

0 个答案:

没有答案