/ / Pivot SQL na transponovanie dát - sql, sql-server, pivot

SQL pivot pre prevod dát - sql, sql-server, pivot

Mám problémy s obalom hlavypoužite pivot (alebo nejaké iné riešenie) len na transponovanie dát. Nemusím sa obávať zhromažďovania akýchkoľvek informácií, doslova len chcem transponovať riadky a stĺpce.

Mám tabuľku, kde každý záznam ukladá odpovede na sériu otázok. Štruktúra vyzerá takto, kde sú všetky otázky áno / nie bity:

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

Chcem si vziať dotaz ako

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

a transponovať to, aby som sa dostal

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

odpovede:

1 pre odpoveď č. 1

Skúste toto

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