Pular para o conteúdo
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #88689
    walterjun
    Participante

      Bom dia a todos,

      estou no trabalho e tive que fazer um script para a carga de dados no oracle, porém me deparei com a seguinte situação, possuia uma coluna que dependia do select fazendo uma soma de outras 4 colunas sendo que eu só poderia usar uma certa coluna caso ela não tivesse valor = 98, o que me facilitou é que dei um select no outro banco de onde estava pegando as colunas e jogando pro meu e reparei que apenas duas possuiam valor 98 então fiz da seguinte forma:

      CASE WHEN col1=88 AND col3=88 THEN (col2 + col4)
      WHEN col1=88 THEN (col2 + col3 + col4)
      WHEN col3=88 THEN (col1 + col2 + col4)
      ELSE (col1 + col2 + col3 + col4)
      END

      Funcionou tranquilo, o problema é que existem outras colunas que precisarei fazer a carga mas que todas possuem valor 88 e o case ficará enorme.
      Tem uma maneira mais inteligente de ser feito esse código de forma a ser menos trabalhoso?

      Desde já obrigado.

      #88870
      walterjun
      Participante

        Olá a todos,

        Consegui resolver o problema ficou assim o código:

        DECODE(col1, NULL, 0,8888888, 0,col1) + DECODE(col2, NULL, 0,8888888, 0,col2) + …

        Vlw!!

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.