Oracle UNPIVOT

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.

Oracle UNPIVOT

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_clausecontiene las columnas pivotadas que no serán pivotadas.

La cláusula INCLUDE | EXCLUDE NULLSpermite 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:

oracle unpivot - tabla de ejemplo

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:

oracle unpivot - example

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 include nulls example

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:

ejemplo de Oracle unpivot multiple columns

Esta imagen ilustra el proceso de transposición:

Oracle unpivot multiple columns

En este tutorial, ha aprendido a utilizar la cláusula Oracle UNPIVOT para transponer columnas a filas.

  • ¿Ha sido útil este tutorial?
  • SíNo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.