Nie możesz tego osiągnąć za pomocą transpozycji. raczej spróbuj użyć natural full outer join
WITH T
AS (SELECT
P.*,
ROW_NUMBER ( )
OVER (PARTITION BY PERSON, LEVELS ORDER BY LANGUAGE)
R
FROM
PROGRAMMER P)
SELECT
PERSON,
SENIOR,
MID,
JUNIOR
FROM
(SELECT
PERSON,
R,
LANGUAGE SENIOR
FROM
T
WHERE
LEVELS = 'SENIOR')
NATURAL FULL OUTER JOIN (SELECT
PERSON,
R,
LANGUAGE MID
FROM
T
WHERE
LEVELS = 'MID')
NATURAL FULL OUTER JOIN (SELECT
PERSON,
R,
LANGUAGE JUNIOR
FROM
T
WHERE
LEVELS = 'JUNIOR');
Otrzymujesz
PERSON SENIOR MID JUNIOR
--------------- -------------------- -------------------- --------------------
CARL JAVA PHP VB.NET
GARY C#
GARY VB.NET
RALPH JAVASCRIPT RUBY
RALPH PHP
5 rows selected.