在MySQL中用sum()函数进行加减的时候:


正确写法:

sum(A) - sum(B)


错误写法:

//但是这种 写法在ORACLE和DB2中是可以的

sum(A - B)


造成两种计算结果不一致的原因,分析如下:

1.如果字段A和字段B的值都不为NULL,则以上两种情况一样

2.如果其中有一个字段的值为NULL则sum(A - B)的值为NULL

3.所以,最保险,万无一失的写法是使用ifnull函数,将null值赋为0: sum(ifnull(A,0)) - sum(ifnull(B,0))