update  table  set i=isnull(i,0)+4

解决方案 »

  1.   

    语法
    ISNULL ( check_expression , replacement_value ) 参数
    check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型
    返回与 check_expression 相同的类型。注释
    如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value
      

  2.   

    update  table2 set i=isnull(i,0)+4 
      

  3.   

    使用 ISNULL
    下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。USE pubs
    GO
    SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, 
       ISNULL(price, 0.00) AS Price
    FROM titles
    GO
      

  4.   

    由于null加减乘除任何值结果还是null,所以要转换一下,用isnull(列,0)+4,相当于把null值先更新成0再参与运算.
        要避免这种情况,isnull是一种方法,也可以先把该列所有为null的值更新为0,然后为该列设置默认值为0
    --为列设置默认值
    ALTER TABLE 表 ADD CONSTRAINT 列 DEFAULT(0.0) FOR 列
      

  5.   

    用isnull函數就可以解決樓主的問題了
    isnull(ColumnName,0)
      

  6.   

    或者將其float字段默認置設置為0