Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #98808
    rfbarrozo
    Participante

      Olá,

      Gostaria de saber se eu posso em uma instrução select fazer o seguinte:

      Select n1, n2, n3
      from tabela

      resultados:
      1) 0, 10, -10
      2) 1, 10, 10

      ou seja, o valor de n3 será positivo ou negativo dependendo do valor de n1 ( Si n1 =0 –> n3 = n2 * -1 )
      ( Si n1 =1 –> n3 = n2 )

      Minha dúvida é como posso fazer este teste no select (Oracle 10g).
      Obrigado

      #98809
      Manoel872
      Participante

        select decode(1,0,10-1,1,101,0) from dual

        variavel,valor,entao,valor,entao,senao

        Espero ter ajudo.

        Att,

        Manoel Jr

        #98810
        joseniz
        Participante

          Duas possiveis soluções usando decode ou case.

          SELECT n1, n2,
          decode(n1, 0, n2* -1, — se n1=0
          1, n2 — se n1=1
          NULL) — else
          FROM tabela;

          SELECT n1, n2,
          , case
          when n1=0 then n2 * -1
          when n1=1 then n2
          else NULL
          end n3
          FROM tabels;

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