Tentando encontrar alguns exemplos simples do SQL Server PIVOT. A maioria dos exemplos que encontrei envolve contar ou somar números. Eu só quero dinamizar alguns dados de string. Por exemplo, eu tenho uma consulta retornando o seguinte.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Gostaria de usar o PIVOT (se possível) para obter os resultados da seguinte forma:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Isso é possível com a funcionalidade PIVOT?
sql-server
tsql
pivot
Tim Cochran
fonte
fonte
Respostas:
Lembre-se de que a função agregada MAX funcionará tanto em texto quanto em números. Essa consulta exigirá que a tabela seja varrida apenas uma vez.
fonte
...ELSE NULL END...
vez de...ELSE '' END...
?Configuração da tabela:
Sua mesa:
SELECT action, view_edit FROM dbo.tbl
Consulta sem usar o PIVOT:
Consulta usando PIVOT:
As duas consultas resultam:
fonte
Se você deseja especificamente usar a função PIVOT do SQL Server, isso deve funcionar, supondo que suas duas colunas originais sejam chamadas act e cmd. (Não é tão bonito de se olhar.)
fonte
De http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/ :
fonte
Bem, para sua amostra e qualquer uma com um número limitado de colunas exclusivas, isso deve ser feito.
fonte
fonte
Eu tive uma situação em que estava analisando seqüências de caracteres e as duas primeiras posições da sequência em questão seriam os nomes de campo de um padrão de codificação de declarações de assistência médica. Então, eu removia as strings e obtinha valores para F4, UR e UQ ou outros enfeites. Isso foi ótimo em um registro ou em alguns registros para um usuário. Mas quando eu queria ver centenas de registros e os valores para todos os usuáriosz, ele precisava ser um PIVOT. Isso foi maravilhoso, especialmente para exportar muitos registros para o Excel. A solicitação de relatório específica que recebi foi "toda vez que alguém enviava uma solicitação de Benadryl, que valor eles enviavam nos campos F4, UR e UQ. Eu tinha um APLICATIVO EXTERNO que criou o ColTitle e os campos de valor abaixo
fonte