在sql里面怎么判断如果不等于下面的这几个字段,就是“其他”

select count(1)合计
,sum(case when poduji='缓' then 1 else 0 end) 缓
,sum(case when poduji='斜' then 1 else 0 end) 斜
,sum(case when poduji='险' then 1 else 0 end) 险
,sum(case when poduji='陡' then 1 else 0 end) 陡
,sum(case when poduji='平' then 1 else 0 end) 平
,sum(case when poduji='急' then 1 else 0 end) 急
,sum(case when poduji not in('缓','斜','险','陡','平','急') ) 其他 -------(就是这个,需要怎么写才是对的)
from XiaoBan

你不是都写出来了吗,,,

sum(case when poduji not in('缓','斜','险','陡','平','急') then 1 else 0 end ) 其他追问

sum(case when poduji not in('缓','斜','险','陡','平','急') then 1 else 0 end ) 其他 这句话有问题啊

追答

什么问题?提示什么

追问

,sum(case when poduji not in('缓','斜','险','陡','平','急') then 1 else 0 end )其他 这样写就好了,但是 其他中因为有的数据中 刚好这个字段是为NULL的,但是NULL也是一条数据算是其他中的,所以还是不对的

追答

sqlserver,用isnull去空
sum(case when isnull(poduji,'') not in('缓','斜','险','陡','平','急') then 1 else 0 end )

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答