none
Soma de dois valores onde um é nulo RRS feed

  • Pergunta

  • Como eu faço quando eu não consigo obter o valor total quando um dos valores são nulos?

    CREATE TABLE [dbo].[soma](

    [id] [int] NULL,

    [numero] [int] NULL,

    [numero2] [int] NULL

    ) ON [PRIMARY]

    insert into soma values (1,2,3)

    insert into soma (id, numero) values (4,2)

    select id, numero, numero2, (numero + numero2) as total from soma

     

    select * from soma

     

     

    Até agora eu consegui fazer isto:

     

     

    select

    case when numero is null then 0

    else numero

    end as number, case when numero2 is null then 0

    else numero2

    end as number2, numero + numero2 as total

    from soma

     

     

     

     

     

    agora como eu somo o number + o number2, sem me trazer resultado nulo?

     

     

    Porque está trazendo nulo?

     

     

    Grato

     

    Maurício

    terça-feira, 27 de janeiro de 2009 14:19

Todas as Respostas

  • Olá,

     

    Use a função ISNULL para este tipo de somatória:

    Code Snippet

    DECLARE @NUMERO INT, @NUMERO2 INT

    SELECT ISNULL(@NUMERO, 0) + ISNULL(@NUMERO2, 0) AS SOMA

     

     

     

    Um abraço,

    Raul Santos Neto

     

    terça-feira, 27 de janeiro de 2009 14:44
  •  

    Raul,

     

     

    Muito obrigado, funconou!!!

     

     

    Maurício

    terça-feira, 27 de janeiro de 2009 15:23
  • Maumauboy,

     

    O segredo do exemplo postado pelo Raul, esta na utilização a system function IsNull, esta função tem por objetivo verificar se o valor que esta sendo passado por conter valores nulos, caso esta condição seja verdadeira, a função IsNull permite especificar um valor para substituir o valor nulo.

    terça-feira, 27 de janeiro de 2009 15:56