Oracle UNPIVOT

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.

Oracle UNPIVOT

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 - tabela de exemplo

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:

oracle unpivot - exemplo

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 incluir exemplo de nulos

Oracle unpivot múltiplas colunas

Vejamos um exemplo de unpivotar múltiplas colunas.

Primeiro, solte e recrie o sale_statstabela:

Segundo, insira linhas no sale_statstabela:

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:

 exemplo de múltiplas colunas sem pivô

Esta figura ilustra o processo de transposição:

>Oracle unpivot multiple columns

Neste tutorial, você aprendeu como usar a cláusula do Oracle UNPIVOT para transpor colunas para linhas.

  • Este tutorial foi útil?
  • Sim Não

>

Deixe uma resposta

O seu endereço de email não será publicado.