Transformando linhas em colunas com SQL (pivoteamento)
Dica publicada em Linux / Introdução
Transformando linhas em colunas com SQL (pivoteamento)
Transformando linhas em colunas com utilizando SQL ansi, técnica chamada de pivoteamento.
Prezados, nesse pequeno texto irei explicar como transpor o conteúdo de linhas em colunas utilizando SQL ansi (deve funcionar em qualquer banco de dados relacional).
Imaginemos que você possua uma tabela com o seguintes campos e conteúdo:
Perceba que amarramos a consulta interna com a matrícula da tabela externa que apelidamos de "t1".
Com isso, realizamos a consulta com SQL transportando o conteúdo das linhas em colunas.
Prezados, nesse pequeno texto irei explicar como transpor o conteúdo de linhas em colunas utilizando SQL ansi (deve funcionar em qualquer banco de dados relacional).
Imaginemos que você possua uma tabela com o seguintes campos e conteúdo:
Matricula disciplina bimestre nota 101, matematica, 1, 8.5 102, matematica, 1, 9.5 102, português, 2, 5.0 101, matematica, 2, 9.0Digamos que você queira mostrar o resultado da consulta das notas da disciplina de matemática da seguinte forma:
Matricula Nota 1 bimestre Nota 2 bimestre 101 8.5. 9.0 102. 9.5. 5.0Vamos ao SQL:
Select matricula,
(Select nota from tabela where bimestre = 1 and disciplina = matematica and matricula = t1.matricula) as " Nota do 1 bimestre",
(Select nota from tabela where bimestre =2 and disciplina = matematica and matricula = t1.matricula) as " Nota do 2 bimestre"
From tabela t1 where disciplina = "matematica"
(Select nota from tabela where bimestre = 1 and disciplina = matematica and matricula = t1.matricula) as " Nota do 1 bimestre",
(Select nota from tabela where bimestre =2 and disciplina = matematica and matricula = t1.matricula) as " Nota do 2 bimestre"
From tabela t1 where disciplina = "matematica"
Perceba que amarramos a consulta interna com a matrícula da tabela externa que apelidamos de "t1".
Com isso, realizamos a consulta com SQL transportando o conteúdo das linhas em colunas.