2015-05-25 2 views
1

У меня есть таблица А как это:Как вставлять значения из нескольких строк в запись в oracle?

id field  value 
---------------------- 
    1845 name  john 
    1845 post  manager 
    1845 birth  1980 
    1846 name  alex 
    1846 post  employee 
    1846 birth  1986 

я хочу результирующий набор, который выглядит примерно так:

 id  name  post  birth 
---------------------------------------- 
    1845 john manager 1980 
    1846 alex employee 1986 
. 
. 
. 

есть ли способ в оракула, чтобы сделать это?

ответ

2

Предполагая, что поле идентификатора будет иметь одинаковое число для заданного имени, должности и рождения, следующий запрос может вам помочь.

select 
    distinct 
    id, 
    (select value from test where id = a.id and field = 'name') as name, 
    (select value from test where id = a.id and field = 'post') as post, 
    (select value from test where id = a.id and field = 'birth') as birth 
from test a 

Следует отметить, что приведенный выше запрос будет не работа для случая ниже, где есть 2 названия для одной и той же ID:

id field  value 
---------------------- 
1845 name  john 
1845 post  manager 
1845 birth  1980 
1845 name  alex 
1845 post  employee 
1845 birth  1986 

Пример: http://sqlfiddle.com/#!4/ca93f/3

 Смежные вопросы

  • Нет связанных вопросов^_^