2013-07-28 3 views
0

У меня есть следующая таблица, в которой хранятся записи.SQL pivot-like records расположение

ID header  value 
1 firstname James 
1 lastname Tulan 
2 firstname Berty 
2 lastname O-Nelly 
3 firstname Ana 
3 lastname Santos 

Мне нужно, чтобы отобразить записи следующим образом

id firstname Lastname 
1 James  Tulan 
2 Berty  O-Nelly 
3 Ana   Santos 

Я пытался использовать функцию PIVOT SQL. Это не сработало. Кто-нибудь столкнулся с этим?

+0

«Это не работает должным образом», - вздыхают ....... –

+3

В случае, если идентификаторы в данные образца действительно равны 1, 1, 2, 2, 3, 3? –

+0

Как насчет того, что запрос, который вы использовали, не работал должным образом? – Tombatron

ответ

2

Предполагая, что идентификаторы в первой таблице, определить пары, вы можете просто сделать агрегация:

select id, 
     max(case when header = 'firstname' then value end) as firstname, 
     max(case when header = 'lastname' then value end) as lastname 
from t 
group by id;