/ /データを転置するSQLピボット - sql、sql-server、ピボット

データを転置するSQLピボット - sql、sql-server、ピボット

私の頭を包み込むのに困っているピボット(または他のソリューション)を使用してデータを移調するだけです。私は情報を集約することを心配する必要はありません。文字通り行と列を転置したいだけです。

私は、各レコードが一連の質問に対する回答を格納するテーブルを持っています。この構造は、すべての質問がイエス/ノービットの場合のように見えます:

(pk)ID, q1, q2, q3, q4, q5....

私は次のような質問をしたい

select ID, q1, q2, q3, q4, q5
from mytable
where myconditions

私が得るように転置する

ID 1 2 3 4
q1 1 1 0 1
q2 1 0 0 1
q3 0 0 1 1
q4 1 1 1 1
q5 0 0 1 0

回答:

回答№1は1

これを試して

SELECT *
From
(
select id, col, value
from mytable
unpivot
(
value
for col in (q1, q2, q3, q4, q5)
) unpiv
) src
pivot
(
min(value)
for ID in ([1],[2],[3],[4])
) piv

Op:

COL 1   2   3   4
q1  1   1   0   1
q2  1   0   0   1
q3  0   0   1   1
q4  1   1   1   1
q5  0   0   1   0