Oracle: Como dividir valores em colunas

Escrito por barry kaye | Traduzido por dyonata ramos
Oracle: Como dividir valores em colunas

Imagem

Ablestock.com/AbleStock.com/Getty Images

Algumas vezes é mais vantajoso criar colunas oriundas de múltiplos valores em um campo de banco de dados "Oracle". Ver os valores de dados como uma coluna, em oposição às linhas, permite uma manipulação e apresentação diferenciada dos dados. Um exemplo pode ser realizado em uma operação matemática em uma lista de valores de um campo, mas com a apresentação de outro valor como resultado, sendo que esse valor representa uma categoria para aquele outro valor. Isso pode ser visto como o equivalente a uma grade ou um gráfico do tipo "cross-tab".

Nível de dificuldade:
Desafiante

Outras pessoas estão lendo

Instruções

  1. 1

    Verifique quais dados estão disponíveis por meio de uma consulta: Exemplo: SELECT * FROM TABELA. O resultado da consulta acima pode resultar em três colunas com os valores mostrados a seguir. CATEGORIA ITEM PREÇO$ ------ A ----------- 1 -------- 5 ------ A ----------- 2 ------- 10 ------ B ----------- 2 ------- 10 ------ B ----------- 3 ------- 15 ------ C ----------- 3 ------- 15 ------ C ----------- 4 ------- 20

  2. 2

    Reescreva a consulta para criar colunas para os valores de CATEGORIA. SELECT DECODE(CATEGORIA, 'A', ITEM, null) CATEGORIAA, DECODE(CATEGORIA, 'B', ITEM, null) CATEGORIAB, DECODE(CATEGORIA, 'B', ITEM, null) CATEGORIAC FROM TABELA Nota: Essa consulta demonstra como uma linha de valores pode ser apresentada em colunas. Resultado da consulta CATEGORIAA CATEGORIAB CATEGORIAC ------- 1 ------- 2 ----------------------------- 2 ----------------------------- 3 ---------------------------------------------------- 3 ---------------------------------------------------- 4 Apesar da coluna CATEGORIA ter sido dividida em uma unica coluna, as linhas de valores não são agrupadas. Seis linhas de dados (verifique o resultado da etapa 1) ainda ocupam seis linhas de saída.

  3. 3

    Reescreve a consulta para encontrar o preço máximo por categoria em colunas: SELECT MAX(DECODE(CATEGORIA, 'A', $PREÇO, null)) CATEGORIAA, MAX(DECODE(CATEGORIA, 'B', $PREÇO, null)) CATEGORIAB, MAX(DECODE(CATEGORIA, 'C', $PREÇO, null)) CATEGORIAC FROM TABELA Nota: Essa consulta agora apresenta um resultado com apenas uma linha de informação (o preço máximo) por categoria. Isso pode ser verificado com o exemplo fornecido na etapa 1. - para CategoriaA, 10 é o valor máximo entre 5 e 10. - para CategoriaB, 15 é o valor máximo entre 10 e 15. - para CategoriaC, 20 é o valor máximo entre 15 e 20. Resultado da consulta: CATEGORIAA CATEGORIAB CATEGORIAC ---------10 ----------------- 15 --------------- 20

Dicas & Advertências

  • A função agregada MAX do Oracle encontra o valor máximo de uma lista de valores, podendo ser alfanumérico, numérico ou datas.
  • A função DECODE do Oracle converte os valores dos campos em uma coluna com um novo nome.

Não deixe de ver

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível

Direitos autorais © 1999-2015 Demand Media, Inc.

O uso deste site constitui plena aceitação dos Termos de Uso e Política de privacidade de eHow. Ad Choices pt-BR

Demand Media