En este post queremos hablar de los operadores relacionales PIVOT y UNPIVOT de SQL Server los cuales en una consulta SQL permiten intercambiar los resultados de filas por columnas (referencias cruzadas).
💼 Empleos tech relacionados:
- AWS Production Support Engineer · Capital Empresarial Horizonte
- Especialista de Gobierno de Métricas y KPIs · Capital Empresarial Horizonte
2,956 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google
¿En qué te ayudamos hoy?
🎓 Cursos confirmados con 50% OFF hoyInicia 17 Oct — cupo limitado para lectores del blog:
-
💬 Consultor Spring Framework
· Inicia 17 Oct · sabatino ·
$12,900$6,450 (-50%) MXN -
💬 Consultor AWS Despliegue de Apps
· Inicia 24 Oct · sabatino ·
$8,130$4,065 (-50%) MXN -
💬 Consultor API REST con .Net Core
· Inicia 14 Nov · sabatino ·
$10,930$5,465 (-50%) MXN
Por WhatsApp en horario habil · ver todos los cursos → · ⭐ Opiniones en Google
Aunque en este post nos centramos en SQL Server estos operadores están disponibles en otros gestores de Base de Datos como Oracle.
PIVOT
A través de este operador de SQL Server, podemos transformar las filas devueltas mediante una consulta en columnas de valor único.
La sintaxis del este operador sería:
Veamos un ejemplo de uso. Supongamos que disponemos de los siguientes datos:
Al tomar estos datos como entrada, aplicando el operador PIVOT:
Los resultados obtenidos serían:
Como podemos observar, se hace una agrupación por años, aplicando la función de agrupación SUM y los valores únicos de los años se emplean en la salida como columnas.
Si pidiésemos años para los que no existen valores, en las celdas correspondientes se devolvería NULL.
UNPIVOT
Para realizar la operación inversa, es decir transformar columnas en filas, usamos el operador de SQL Server llamado UNPIVOT.
Para ver el funcionamiento de UNPIVOT, supongamos que usamos como datos de entrada la siguiente tabla:
Si aplicamos el operador UNPIVOT a través de la sentencia:
Los resultados obtenidos serían:
Que como se puede observar, muestra los datos intercambiando las columnas y cruzando las columnas con las filas originales para obtener la tabla completa.
Por tanto UNPIVOT es el operador opuesto a PIVOT, a excepción que PIVOT ejecuta una función de agregación, mientras transforma los valores de la fila en valores de columna, con lo cual podría fusionar lo valores de múltiples filas en un valor de una sola columna de salida. Por tanto, aplicando a unos datos el operador PIVOT y posteriormente el UNPIVOT, no obtendríamos los datos originales.
En cualquier caso estos dos operadores de SQL Server, como he mostrado a lo largo del post, son muy fáciles de usar y con una sola consulta nos pueden dar mucha información.
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
💼 Empleos tech relacionados:
- AWS Production Support Engineer · Capital Empresarial Horizonte
- Especialista de Gobierno de Métricas y KPIs · Capital Empresarial Horizonte
2,956 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google












