sql server 如何改变计算结果的值 如null改变为0

2024-11-27 12:30:22
推荐回答(5个)
回答1:

你这个null不是计算产生的,而是最后行转列时的空值(其实是没有的值)。所以isnull不好使。
比如客服凡生,他只有地下城与勇士的数据,其他数据没有,那么行转列以后,其他没有的值自然就是空值,这个和前面的统计没有什么关系的。
个人觉得有两个办法:
(1)再套一层,但是我记得这种行转列的数据,好像不认列名(转列后的列名),你可以试试,如果认列名,那么就再套一层,写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。
(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。

回答2:

sql server 中 ISNULL 有两个参数,第一个是字段名或变量,第二个是默认值 

读取数据时可以这样写

select [客服],ISNULL([英雄联盟],0) as [英雄联盟] from [OrderLog]

你那句里面count应该改成

SELECT Operator as [客服], ISNULL(COUNT(Operator),0) AS [单数] ...

回答3:

你看下图,把红框里的代码,写成绿框里的试试。

回答4:

update TABLE set 字段名=0 where isnull(字段名)把字段名改为你的实际字段名,TABLE改为你实际表名。

回答5:

用case when吧,

select  case when sss is null then o else sss end as example where  xxxx;

就是这么个写法。

select isnull(xxx,0)  as xxx  where xxxxx

也是可以的。