简单的sql语句,由于自己水平一般,不知道错在哪里...忘熟悉语句的人指导一二,谢谢!select new_name as 年度,count(new_name) as 总份数,round(sum(case new_q01 when '0' then filterednew_survey.new_q01when filterednew_survey.new_q01 is null then '0'else(filterednew_survey.new_q01-1.00)end),2) as 产品的销售价格打分from filterednew_surveygroup by new_name为什么这句提示关键字 'is' 附近有语法错误???selectnew_name as year,count(new_name) as quantity,round(sum(isnull(new_q01,1.00)-1.00)/sum(casewhen new_q01 is null then 0else 1 end ),2) as 产品的销售价格打分from filterednew_surveygroup by new_name这句没有问题.selectnew_name as year,count(new_name) as quantity,round(sum(isnull(new_q01,1.00)-1.00)/sum(casewhen new_q01 is null then 0else 1 end ),2) as 产品的销售价格打分from filterednew_surveygroup by new_name这句也没有问题请各位指导下~~~经过几位的帮忙,我自己修改了一下,改成select new_name as 年度,count(new_name) as 总份数,round(sum(case new_q01 when '0' then filterednew_survey.new_q01else (isnull(filterednew_survey.new_q01,1.00)-1.00)end),2) as 产品的销售价格打分from filterednew_surveygroup by new_name也重新理解了下isnull但是有还是有点小小的不明白selectnew_name as year,count(new_name) as quantity,round(sum(isnull(new_q01,1.00)-1.00)/sum(casewhen new_q01 is null then 0else 1 end ),2) as 产品的销售价格打分from filterednew_surveygroup by new_name为什么这句的也是is null then 0就可以呢?
2 回答
慕少森
TA贡献2019条经验 获得超9个赞
select new_name as 年度,
count(new_name) as 总份数,
round(sum(case isnull(new_q01,0) when '0' then '0'
else(filterednew_survey.new_q01-1.00) end),2) as 产品的销售价格打分
from filterednew_survey
group by new_name
改成这个试一下
-------------------------------
when new_q01 is null then 0
else 1 end
这个是不行的 你会发现 不管他是不是null 他返回的都是1
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
ISNULL使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
IS NULL 是两个关键字,在一起用是判断指定的内容是否是 null
两个似乎没有什么可比性
添加回答
举报
0/150
提交
取消