sql server 如何改变计算结果的值 如null改变为0
如何把表中的null都改为0我知道isnull(xx,0);但是我不知道在我这些查询语句中怎么用...
如何把表中的null都改为0
我知道isnull(xx, 0);
但是我不知道在我这些查询语句中怎么用 展开
我知道isnull(xx, 0);
但是我不知道在我这些查询语句中怎么用 展开
展开全部
你这个null不是计算产生的,而是最后行转列时的空值(其实是没有的值)。所以isnull不好使。
比如客服凡生,他只有地下城与勇士的数据,其他数据没有,那么行转列以后,其他没有的值自然就是空值,这个和前面的统计没有什么关系的。
个人觉得有两个办法:
(1)再套一层,但是我记得这种行转列的数据,好像不认列名(转列后的列名),你可以试试,如果认列名,那么就再套一层,写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。
(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。
比如客服凡生,他只有地下城与勇士的数据,其他数据没有,那么行转列以后,其他没有的值自然就是空值,这个和前面的统计没有什么关系的。
个人觉得有两个办法:
(1)再套一层,但是我记得这种行转列的数据,好像不认列名(转列后的列名),你可以试试,如果认列名,那么就再套一层,写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。
(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。
更多追问追答
追问
你说的第一个办法怎么写啊 我是初学者不知道再套一层怎么写
追答
就是在这个语句外层在写一层select(现在这张表查询出来的内容,就可以作为字段了),不过我也说了,可能不能用,因为我记得行转列不认列名。可以试试视图,如果这个语句本身可以建立视图,那么应该就可以了。
展开全部
用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
也是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询