0

嗨,我正在使用 SQL Server 2012,我有一个表,其中包含 1000 个问题作为行。我需要随机选择其中的 20 个问题,然后将它们作为单独的列插入到另一个表的单行中。

我想做这样的事情。

select top 20 questionid from questions order by newid()
insert into questionsets values (q1,q2,q3,q4,q5,q6....)

我尝试过以各种方式进行此操作,但无法以一种不昂贵的方式让我的头脑清醒。

4

1 回答 1

2

请在 PIVOTing 结果集后尝试插入:

INSERT INTO 
    questionsets    (
    Q1,
    Q2,
    .
    .
    Q20)
SELECT * FROM(
    SELECT *, ROW_NUMBER() OVER (ORDER BY questionid) RNum FROM(
        SELECT TOP 20 questionid FROM questions ORDER BY NEWID()
)x)y PIVOT (MAX(questionid) FOR RNum IN ([1], [2], [3], ..., [20]))as pvt
于 2013-04-23T07:56:00.917 回答