Intentando encontrar algunos ejemplos simples de PIVOT de SQL Server. La mayoría de los ejemplos que he encontrado implican contar o resumir números. Solo quiero pivotar algunos datos de cadena. Por ejemplo, tengo una consulta que devuelve lo siguiente.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Me gustaría usar PIVOT (si es posible) para hacer que los resultados sean así:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
¿Es esto posible con la funcionalidad PIVOT?
sql-server
tsql
pivot
Tim Cochran
fuente
fuente
Respuestas:
Recuerde que la función de agregado MAX funcionará tanto en texto como en números. Esta consulta solo requerirá que la tabla se escanee una vez.
fuente
...ELSE NULL END...
lugar de...ELSE '' END...
?Configuración de la mesa:
Tu mesa:
SELECT action, view_edit FROM dbo.tbl
Consulta sin usar PIVOT:
Consulta usando PIVOT:
Ambas consultas resultan:
fuente
Si desea utilizar específicamente la función PIVOT de SQL Server, esto debería funcionar, suponiendo que sus dos columnas originales se denominen act y cmd. (Aunque no es tan bonito de ver).
fuente
De http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/ :
fuente
Bueno, para su muestra y cualquiera con un número limitado de columnas únicas, esto debería hacerlo.
fuente
fuente
Tuve una situación en la que estaba analizando cadenas y las dos primeras posiciones de la cadena en cuestión serían los nombres de campo de un estándar de codificación de reclamos de atención médica. Así que quitaría las cadenas y obtendría valores para F4, UR y UQ o cualquier otra cosa. Esto fue genial en un registro o en algunos registros para un usuario. Pero cuando quería ver cientos de registros y los valores para todos los usuarios, tenía que ser un PIVOT. Esto fue maravilloso especialmente para exportar muchos registros para sobresalir. La solicitud de informe específica que recibí fue "cada vez que alguien presentaba un reclamo por Benadryl, qué valor enviaban en los campos F4, UR y UQ. Tenía una APLICACIÓN EXTERNA que creaba el ColTitle y los campos de valor a continuación
fuente