0

こんにちは、SQL Server 2012 を使用しています。1000 の質問が行として含まれるテーブルがあります。これらの質問のうち 20 個をランダムに選択し、それらを別のテーブルの 1 つの行に別の列として挿入する必要があります。

私はこのようなことをしたいです。

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

私はこれをさまざまな方法で試してみましたが、それほど高価ではない方法で頭を悩ませています。

4

1 に答える 1

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
于 2013-04-23T07:56:00.917 に答える