Resumo: neste tutorial, você aprenderá como usar a cláusula Oracle UNPIVOT
para transpor colunas para linhas.
Clusula UNPIVOT para Oracle
A cláusula Oracle UNPIVOT
permite que você transponha colunas para linhas. A cláusula UNPIVOT
é oposta à cláusula PIVOT
exceto que ela não desagrega os dados durante o processo de transposição.
O seguinte ilustra a sintaxe do Oracle UNPIVOT
cláusula:
Nesta sintaxe:
- O
unpivot_clause
permite especificar um nome para uma coluna que representa os valores de medida não pivotados. - O
unpivot_for_clause
permite-lhe especificar o nome de cada coluna que irá manter os valores da medida. - O
unpivot_in_clause
contém as colunas pivotadas que serão não pivotadas.
A cláusula INCLUDE | EXCLUDE NULLS
permite-lhe incluir ou excluir linhas de valor nulo.
- A cláusula
INCLUDE NULLS
instrui o Oracle a incluir linhas com valor nulo. - A cláusula
EXCLUDE NULLS
, por outro lado, elimina linhas com valor nulo do conjunto de resultados retornados.
Por padrão, a operação sem pivô exclui linhas com valor nulo.
Vamos pegar alguns exemplos de como usar a cláusula Oracle UNPIVOT
para obter um melhor entendimento.
Configurando uma tabela de exemplo
Primeiro, crie uma nova tabela chamada sale_stats
para demonstração:
Segundo, insira algumas linhas na sale_stats
tabela:
Terceiro, consulte os dados da sale_stats
tabela:
Aqui está a saída:
Oracle UNPIVOT exemplos
Esta declaração usa a cláusula UNPIVOT
para girar colunas product_a
, product_b
, e product_c
em linhas:
Neste exemplo:
O unpivot_clause
é quantity
que é uma coluna que representa os valores não pivotados das colunas product_a
, product_b
, e product_c
.
A unpivot_for_clause
é FOR product_code
, que é a coluna que irá manter os valores da medida.
A cláusula unpivot_in_clause
é:
que instrui o Oracle a desdobrar valores nas colunas product_a
, product_b
, e product_c
.
A figura seguinte mostra a saída:
Por defeito, a operação UNPIVOT
exclui linhas de valor nulo, portanto, não se vê nenhum NULL na saída.
O exemplo seguinte usa a cláusula UNPIVOT
para transpor valores nas colunas product_a
, product_b
, e product_c
para linhas, mas incluindo linhas com valor nulo:
Aqui está a saída:
Oracle unpivot múltiplas colunas
Vejamos um exemplo de unpivotar múltiplas colunas.
Primeiro, solte e recrie o sale_stats
tabela:
Segundo, insira linhas no sale_stats
tabela:
Terceiro, consulte os dados da tabela sale_stats
:
Finalmente, use a cláusula UNPIVOT
para transpor os valores na coluna a_qty
, a_value
, b_qty
, e b_value
para linhas:
Aqui está o conjunto de resultados:
Esta figura ilustra o processo de transposição:
Neste tutorial, você aprendeu como usar a cláusula do Oracle UNPIVOT
para transpor colunas para linhas.
- Este tutorial foi útil?
- Sim Não
>