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

如何把表中的null都改为0我知道isnull(xx,0);但是我不知道在我这些查询语句中怎么用... 如何把表中的null都改为0
我知道isnull(xx, 0);
但是我不知道在我这些查询语句中怎么用
展开
 我来答
longrenyingdc8ecb1
2019-04-28 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2364万
展开全部
你这个null不是计算产生的,而是最后行转列时的空值(其实是没有的值)。所以isnull不好使。
比如客服凡生,他只有地下城与勇士的数据,其他数据没有,那么行转列以后,其他没有的值自然就是空值,这个和前面的统计没有什么关系的。
个人觉得有两个办法:
(1)再套一层,但是我记得这种行转列的数据,好像不认列名(转列后的列名),你可以试试,如果认列名,那么就再套一层,写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。
(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。
更多追问追答
追问
你说的第一个办法怎么写啊 我是初学者不知道再套一层怎么写
追答
就是在这个语句外层在写一层select(现在这张表查询出来的内容,就可以作为字段了),不过我也说了,可能不能用,因为我记得行转列不认列名。可以试试视图,如果这个语句本身可以建立视图,那么应该就可以了。
miniappcy3tv95eaedrf
2019-04-28 · TA获得超过2363个赞
知道大有可为答主
回答量:1909
采纳率:92%
帮助的人:1117万
展开全部

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

读取数据时可以这样写

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

你那句里面count应该改成

SELECT Operator as [客服], ISNULL(COUNT(Operator),0) AS [单数] ...
更多追问追答
追问

不可以哦 报错

追答
不是小括号哦,是方括号,字段名,表名这些可以用方括号括起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cfan_yjr
2019-04-28 · TA获得超过420个赞
知道小有建树答主
回答量:1990
采纳率:70%
帮助的人:516万
展开全部

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

更多追问追答
追问

不可以哦 还是null

追答
你试试把sum(单数),改成sum(isnull(单数,0)),再看看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1f44e15a

2019-04-28 · TA获得超过381个赞
知道小有建树答主
回答量:1329
采纳率:75%
帮助的人:60.1万
展开全部
update TABLE set 字段名=0 where isnull(字段名)把字段名改为你的实际字段名,TABLE改为你实际表名。
更多追问追答
追问

没明白 能完整的帮我写到这个语句中吗 我不知道该写到哪

追答
UPDATE 表名 SET 剑灵= 0 WHERE isnull(剑灵)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑚一刀
2019-04-28 · TA获得超过2113个赞
知道小有建树答主
回答量:5171
采纳率:48%
帮助的人:585万
展开全部

用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

也是可以的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式