Vâng tôi cũng nghĩ thế. Thật dễ dàng để thực hiện việc xoay vòng như vậy với MAX
tổng hợp:
SELECT
*
FROM
(
SELECT
project,
attribute,
value
FROM
table1
) AS SourceTable
PIVOT
(
MAX(value)
FOR attribute IN ([foo],[bar],[baz])
) AS pvt
Nếu không, bạn phải thực hiện một câu lệnh trường hợp bên trong tổng hợp tối đa. Như thế này:
SELECT
MAX(CASE WHEN attribute='foo' THEN value ELSE NULL END) AS foo,
MAX(CASE WHEN attribute='bar' THEN value ELSE NULL END) AS bar,
MAX(CASE WHEN attribute='baz' THEN value ELSE NULL END) AS baz,
project
FROM
table1
GROUP BY
project
Điều này gần giống như thực hiện PIVOT
. Nhưng tôi thích làm PIVOT
qua CASE WHEN MAX
..