比如一个列,有的记录有值,有的记录为null,进行求和操作时,用不用进行isnull()判断呢?我试过,不进行isnull(字段名,0)的判断结果也是正确的.
可是我不明白,null与数值相加的结果是null呢?为何在记录中纵向求和时会以0替换null呢?
table表如下:
姓名 工资
qqq 1200
qqqw 2100
jfkd null
jks 1400
对工资求和
select max(姓名) as 姓名,sum(工资)
from table
还是应该写成:
select max(姓名) as 姓名,sum(isnull(工资,0))
from table
还是应该写成:
select max(姓名) as 姓名,isnull(sum(工资),0)
from table
---------
几种写法哪种好呢?
11 个解决方案
#1
select max(姓名) as 姓名,sum(isnull(工资,0))
from table
from table
#2
难道你认为
select null+1+2
等于3?
select null+1+2
等于3?
#3
select max(姓名) as 姓名,isnull(sum(工资),0)
from table
是错误的
------------------------------------------
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
------------------------------------------
select max(姓名) as 姓名,sum(isnull(工资,0))
from table
建议写成这个样子
#4
聚集函数会自动忽略null
#5
to:crazy_boy1(小辉)
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
#6
谢了.
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
#7
不必考虑NULL值的问题,聚集函数一般都会忽略掉
#8
字符串連接的時候注意不要出現NULL就可以了。加法中會忽略的。
#9
写法严谨点而已
#10
不必考虑NULL值的问题,聚集函数一般都会忽略掉
=================
谢谢,是不是让系统去忽略这个问题,代码有点不严谨呀?可是手工写sum(isnull(field,0)),每个都这么写要多写多少代码呀?
继续请教.
=================
谢谢,是不是让系统去忽略这个问题,代码有点不严谨呀?可是手工写sum(isnull(field,0)),每个都这么写要多写多少代码呀?
继续请教.
#11
如果可能有空值,就必须使用,否则任何值加NULL,都为NULL。
#1
select max(姓名) as 姓名,sum(isnull(工资,0))
from table
from table
#2
难道你认为
select null+1+2
等于3?
select null+1+2
等于3?
#3
select max(姓名) as 姓名,isnull(sum(工资),0)
from table
是错误的
------------------------------------------
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
------------------------------------------
select max(姓名) as 姓名,sum(isnull(工资,0))
from table
建议写成这个样子
#4
聚集函数会自动忽略null
#5
to:crazy_boy1(小辉)
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
#6
谢了.
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
select max(姓名) as 姓名,sum(工资)
from table
不会出错 也可以 但是不推荐
为什么这个写法不推荐?
#7
不必考虑NULL值的问题,聚集函数一般都会忽略掉
#8
字符串連接的時候注意不要出現NULL就可以了。加法中會忽略的。
#9
写法严谨点而已
#10
不必考虑NULL值的问题,聚集函数一般都会忽略掉
=================
谢谢,是不是让系统去忽略这个问题,代码有点不严谨呀?可是手工写sum(isnull(field,0)),每个都这么写要多写多少代码呀?
继续请教.
=================
谢谢,是不是让系统去忽略这个问题,代码有点不严谨呀?可是手工写sum(isnull(field,0)),每个都这么写要多写多少代码呀?
继续请教.
#11
如果可能有空值,就必须使用,否则任何值加NULL,都为NULL。