Resumen: en este tutorial, aprenderá a utilizar la cláusula Oracle UNPIVOT
para transponer columnas a filas.
Introducción a la cláusula Oracle UNPIVOT
La cláusula Oracle UNPIVOT
permite transponer columnas a filas. La cláusula UNPIVOT
es opuesta a la cláusula PIVOT
excepto que no desagrega los datos durante el proceso de transposición.
Lo siguiente ilustra la sintaxis de la cláusula Oracle UNPIVOT
:
En esta sintaxis:
- El
unpivot_clause
permite especificar un nombre para una columna que representa los valores de la medida sin transponer. - La cláusula
unpivot_for_clause
permite especificar el nombre para cada columna que contendrá los valores de la medida. - La cláusula
unpivot_in_clause
contiene las columnas pivotadas que no serán pivotadas.
La cláusula INCLUDE | EXCLUDE NULLS
permite incluir o excluir filas con valores nulos.
- La cláusula
INCLUDE NULLS
indica a Oracle que incluya las filas con valores nulos. - La cláusula
EXCLUDE NULLS
, por otro lado, elimina las filas con valores nulos del conjunto de resultados devuelto.
Por defecto, la operación unpivot excluye las filas con valores nulos.
Tomemos algunos ejemplos de uso de la cláusula Oracle UNPIVOT
para comprender mejor.
Configuración de una tabla de ejemplo
Primero, cree una nueva tabla llamada sale_stats
para la demostración:
Segundo, inserte algunas filas en la tabla sale_stats
:
Tercero, consulte los datos de la tabla sale_stats
:
Aquí está la salida:
Ejemplos de Oracle UNPIVOT
Esta sentencia utiliza la cláusula UNPIVOT
para rotar las columnas product_a
, product_b
y product_c
en filas:
En este ejemplo:
La unpivot_clause
es quantity
que es una columna que representa los valores no girados de las columnas product_a
, product_b
, y product_c
.
El unpivot_for_clause
es FOR product_code
, que es la columna que contendrá los valores de la medida.
La cláusula unpivot_in_clause
es:
que ordena a Oracle que desvirtúe los valores de las columnas product_a
, product_b
y product_c
.
La siguiente imagen muestra la salida:
Por defecto, la operación UNPIVOT
excluye las filas con valores nulos, por lo tanto, no se ve ningún NULL en la salida.
El siguiente ejemplo utiliza la cláusula UNPIVOT
para transponer los valores de las columnas product_a
, product_b
y product_c
a filas, pero incluyendo las filas con valores nulos:
Aquí está la salida:
Oracle unpivot multiple columns
Veamos un ejemplo de unpivoting multiple columns.
Primero, elimine y vuelva a crear la tabla sale_stats
:
Segundo, inserte filas en la tabla sale_stats
:
Tercero, consulte los datos de la tabla sale_stats
:
Por último, utilice la cláusula UNPIVOT
para transponer los valores de la columna a_qty
, a_value
, b_qty
y b_value
en filas:
Aquí está el conjunto de resultados:
Esta imagen ilustra el proceso de transposición:
En este tutorial, ha aprendido a utilizar la cláusula Oracle UNPIVOT
para transponer columnas a filas.
- ¿Ha sido útil este tutorial?
- SíNo