/ / Oracle SQL - Filas en columnas - sql, oracle, pivot

Oracle SQL - Filas en columnas - sql, oracle, pivot

Me preguntaba si es posible mostrar algunas filas como columnas en Oracle 11g.

Quiero lo siguiente

id      language     text
--------------------------
1       english      some example
1       german       an example
2       english      test
2       german       test123

para ser mostrado de esta manera:

id      english        german
---------------------------------
1       some example   an example
2       test           test123

Traté de usar pivot pero no fue capaz de averiguar cómo manejarlo correctamente, ya que pivot requiere una función agregada.

Respuestas

2 para la respuesta № 1

Suponiendo que tenga un texto por idioma por ID, puede usar max o min en la columna de texto en pivot.

select * from tablename
pivot
(max(text) for language in ("english" as ENGLISH,"german" as GERMAN))

EDITAR: Basado en el comentario de OP Estoy teniendo problemas para entender cómo funciona la consulta SELECT si no quiero seleccionar todo en ese caso. SELECCIONE algo, el texto de nombre de tabla o similar no funciona

Recuerda que debes seleccionar todas las columnas que eres pivotEn g.

select * from
(select text,language,id,something from tablename) t
pivot
(max(text) for language in ("english" as ENGLISH,"german" as GERMAN))

Editar: A unpivot utilizar

select *
from (
select * from
(select text,language,id,something from tablename) t
pivot
(max(text) for language in ("english" as ENGLISH,"german" as GERMAN))
) p
unpivot (text for language in (ENGLISH, GERMAN))