Không, không thể thực hiện được với PIVOT
, nhưng nó có thể được thực hiện với UNPIVOT
:
SELECT
Pk,
"Key",
value
FROM Testing
UNPIVOT (
value FOR "Key" IN (C1, C2)
)
Và khi UNPIVOT
không khả dụng, tôi thường bỏ chia sẻ như thế này:
SELECT
t.Pk,
x."Key",
CASE x."Key"
WHEN 'C1' THEN t.C1
WHEN 'C2' THEN t.C2
END AS value
FROM Testing t
CROSS JOIN (
SELECT 'C1' AS "Key" FROM DUAL UNION ALL
SELECT 'C2' FROM DUAL
) x