你这个null不是计算产生的,而是最后行转列时的空值(其实是没有的值)。所以isnull不好使。
比如客服凡生,他只有地下城与勇士的数据,其他数据没有,那么行转列以后,其他没有的值自然就是空值,这个和前面的统计没有什么关系的。
个人觉得有两个办法:
(1)再套一层,但是我记得这种行转列的数据,好像不认列名(转列后的列名),你可以试试,如果认列名,那么就再套一层,写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。
(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。
sql server 中 ISNULL 有两个参数,第一个是字段名或变量,第二个是默认值
读取数据时可以这样写
select [客服],ISNULL([英雄联盟],0) as [英雄联盟] from [OrderLog]
你那句里面count应该改成
SELECT Operator as [客服], ISNULL(COUNT(Operator),0) AS [单数] ...
你看下图,把红框里的代码,写成绿框里的试试。
update TABLE set 字段名=0 where isnull(字段名)把字段名改为你的实际字段名,TABLE改为你实际表名。
用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
也是可以的。