sql >> Base de Datos >  >> RDS >> Sqlserver

Transponer un conjunto de filas como columnas en SQL Server 2000

El ejemplo en http://jdixon.dotnetdevelopersjournal.com/pivot_table_data_in_sql_server_2000_and_2005.htm solo funciona si sabe de antemano cuáles pueden ser los valores de fila. Por ejemplo, supongamos que tiene una entidad con atributos personalizados y los atributos personalizados se implementan como filas en una tabla secundaria, donde la tabla secundaria es básicamente pares de variable/valor, y esos pares de variable/valor son configurables.

color red
size  big
city  Chicago

Voy a describir una técnica que funciona. lo he usado NO lo estoy promocionando, pero funciona.

Para pivotar los datos donde no sabe cuáles pueden ser los valores de antemano, cree una tabla temporal sobre la marcha sin columnas. Luego use un cursor para recorrer sus filas, emitiendo una "tabla de modificación" construida dinámicamente para cada variable, de modo que al final su tabla temporal tenga las columnas, el color, el tamaño y la ciudad.

Luego, inserta una fila en su tabla temporal, la actualiza a través de otro cursor a través de la variable, los pares de valores y luego la selecciona, generalmente unida a su entidad principal, lo que en efecto hace que parezca que esos pares personalizados de variable/valor fueron construidos. en columnas en la entidad matriz original.