Ir ao conteúdo
  • Cadastre-se

Consulta em 2 colunas


Posts recomendados

Olá, bom dia.
Sou novo aqui no Clube do Hardware e estou com um problema de consulta no Oracle.
Tentei diversas formas com inner join, porém não tive sucesso.

Seguinte, existe a tabela "Tabela1". Preciso separar em um select a sequencia dela em duas colunas.
Tem casos que terá o número impar de sequencias e tem caso que terá o numero par.
Exemplo_1 (impar): Sequencia 1,2,3,4 e 5 (total 5rows)
Como preciso que seja apresentado:

Coluna_1     Coluna_2
1                  4
2                  5
3
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Exemplo_2 (par): Sequencia 10,11,12,13:

Coluna_1      Coluna_2
10                 12
11                 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Exemplo_2 consegui fazer funcionar certinho, conforme select abaixo... porém quando é impar não serve, pois acaba gerando um novo valor para coluna B.

_ _ _ _

SELECT a.nr_sequencia, b.nr_sequenciaFROM (SELECT nr_sequencia FROM cm_conjunto_cont WHERE Mod(nr_sequencia,2) = 1) aINNER JOIN(SELECT nr_sequencia FROM cm_conjunto_cont WHERE Mod(nr_sequencia,2) = 0 ) bON a.nr_sequencia+1 = b.nr_sequenciaWHERE a.nr_sequencia IN (256243,256244,256245,256246)

_ _ _ _


Alguém consegue dar um help?
Obrigado !

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Existe a cláusula CASE para validar se o valor é par ou ímpar, etc... Porém não daria para colocar na mesma linha a coluna de impar e par, caso preciso que seja nesse formato, a única hipótese seria em seu exemplo. No meu caso que fiz para te mostrar poderá usar uma referencia como abaixo:

 

http://www.techonthenet.com/oracle/functions/case.php

create global temporary table tmp_renan (nr_sequencia number(1));select * from tmp_renan for update;select case when (mod(tmp.nr_sequencia,2) = 1) then tmp.nr_sequencia end impar, --Caso for impar       case when (mod(tmp.nr_sequencia,2) = 0) then tmp.nr_sequencia end par -- Caso for par  from tmp_renan tmp;

Porém esta maneira é mais performática pois não consultaria a tabela duas vezes, pois caso for muitos registros a sua maneira irá demorar muito comparando a minha maneira.

 

Ai fica ao seu critério. Reforço que o código assim é referencia do site acima, apenas modifiquei para a situação do usuário.

 

Estou à disposição.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!