我无法绕过如何使用pivot(或者其他一些解决方案)来转换数据。我不必担心聚合任何信息,我只想转置行和列。
我有一张表,其中每条记录都存储了一系列问题的答案。结构看起来像这样,所有问题都是是/否位:
(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
答案 0 :(得分: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
<强>运算:强>
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