Динамическое преобразование строк в столбцы в Oracle

У меня есть следующая таблица Oracle 10g с именем _kv:

select * from _kv

ID       K       V
----     -----   -----
  1      name    Bob
  1      age     30
  1      gender  male
  2      name    Susan
  2      status  married

Я бы хотел превратить свои ключи в столбцы с использованием простого SQL (не PL / SQL), чтобы результирующая таблица выглядела примерно так:

ID       NAME    AGE    GENDER  STATUS
----     -----   -----  ------  --------
  1      Bob      30     male 
  2      Susan                   married
  • Запрос должен иметь столько столбцов, сколько уникальных K s существует в таблице (их нет так много)
  • Невозможно узнать, какие столбцы могут существовать до выполнения запроса.
  • Я пытаюсь избежать выполнения начального запроса для программного построения окончательного запроса.
  • Пустые ячейки могут быть нулевыми или пустыми строками, на самом деле это не имеет значения.
  • Я использую Oracle 10g, но решение 11g тоже подойдет.

Существует множество примеров, когда вы знаете, как могут называться ваши сводные столбцы, но я просто не могу найти общее решение для сводных столбцов для Oracle.

Спасибо!

25
задан Adrian Carneiro 11 October 2011 в 17:47
поделиться