您好我正在使用SQL Server 2012,我有一个包含1000个问题的表作为行。我需要随机选择其中的20个问题,然后将它们作为单独的列插入到另一个表中的一行中。
我想做这样的事情。
select top 20 questionid from questions order by newid()
insert into questionsets values (q1,q2,q3,q4,q5,q6....)
我尝试过各种各样的方法,但是我很难以一种不昂贵的方式解决这个问题。
答案 0 :(得分:2)
请在PIVOT结果集后尝试插入:
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