"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo transponer datos en SQL Server utilizando el operador PIVOT?

¿Cómo transponer datos en SQL Server utilizando el operador PIVOT?

Publicado el 2024-12-23
Navegar:994

How to Transpose Data in SQL Server Using the PIVOT Operator?

Cómo transponer datos de SQL Server usando PIVOT

El operador PIVOT en SQL Server le permite convertir filas en columnas, transformando datos de un forma orientada verticalmente a una forma orientada horizontalmente. Esto puede resultar útil cuando se busca resumir datos basados ​​en múltiples atributos.

Datos de ejemplo y resultados deseados

Considere el siguiente conjunto de datos inicial:

SELECT Name1, Name2, Value FROM mytable

Name1 | Name2 | Value
------- ------- ------
A      | P1     | 1
A      | P2     | 1
A      | P3     | 2
B      | P1     | 3
B      | P2     | 1
B      | P4     | 1

El resultado deseado es girar los datos para que el operador PIVOT convierta los valores de la columna Nombre1 en encabezados de columna, y los valores de la columna Valor se resumen en la columna Nombre2.

Transposición de datos con PIVOT en SQL Server 2005

Para SQL Server 2005, el operador PIVOT se puede utilizar en lo siguiente manera:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ','   QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN ('   @cols   ')) AS finalpivot'

EXECUTE ( @sqlquery )

Esta consulta genera dinámicamente una consulta PIVOT basada en los distintos valores de la columna Nombre1, ensamblando los encabezados de las columnas y resumiendo los datos en consecuencia. En última instancia, el resultado son los datos transpuestos en el formato deseado:

P1      P2      P3      P4
------- ------- ------- -------
1       1       2       NULL
3       1       NULL    1
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3