0

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

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

谢谢!

4

0 回答 0