declare @a int
declare @b int
declare @c intset @a=10
set @b=5
--set @c=2select @a-@b-case when @c is null then 0 else @c end

解决方案 »

  1.   

    SQL提供了一个函数ISNULL ( check_expression , replacement_value ) 参数
    check_expression表示将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value表示在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 因此按你的要求可以写成:A-B-ISNULL(C,0)
      

  2.   

    ^_^ISNULL(A,0)-ISNULL(B,0)-ISNULL(C,0)
      

  3.   

    用isnull
    没错
    最好alter table
    把这个字段提供一个default '0'
    以后就不会这个问题了