select inamount, outamount,(inamount-outamount) from fund     字段都是数字型的。sql这样好象不行,帮我看下,一个是 null , 一个是有数字的。 他们相减。还是为空。  为什么?

解决方案 »

  1.   

    null与任何值进行算术运算结果都是null
    对null进行比较运算,结果会被呼略.
    对null进行count聚合,会被呼略
    对null进行sum聚合,不影响结果(虽然也是加法操作,但跟算术加是有这点区别)
    ...
    一时打不完,懒的打了.可以写成select ... ,(isnull(inamount,0)-isnll(outamount,0)) from fund
      

  2.   

    另外,建议在进行数据表设计时,给字段指定默认值.即数据定义. 除一些特殊情况,不要偷懒用null.  因为程序时某些失误会造成不必要的结果. 这就所谓的数据格式化.
    另外,对于null的查询,在性能上也会有损耗.