首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

上面的语句在SQLSERVER中应该如何写

2012-12-15 
下面的语句在SQLSERVER中应该怎么写select 语文3,round(sum(iif(语文70.5,1,0))/count(*)*100,2) as

下面的语句在SQLSERVER中应该怎么写
select '语文3',round(sum(iif(语文>=70.5,1,0))/count(*)*100,2) as 优秀率,round(sum(iif(语文>=58,1,0))/count(*)*100,2) as 良好率,round(sum(iif(语文>=48,1,0))/count(*)*100,2) as 及格率,round(avg(语文),2) as 平均分 from cj where 班级='26'




上面的语句在ACCESS中,可以运行。在SQLSERVER中,不能运行,应该怎么修改一下呢?
[最优解释]

select '语文3',
round(sum(CASE WHEN 语文>=70.5 THEN 语文 ELSE 0 END)/count(1)*100,2) as 优秀率,
round(sum(CASE WHEN 语文>=58 THEN 语文 ELSE 0 END)/count(1)*100,2) as 良好率,
round(sum(CASE WHEN 语文>=48 THEN 语文 ELSE 0 END)/count(1)*100,2) as 及格率,
round(avg(语文),2) as 平均分 
from cj 
where 班级='26'

[其他解释]
select '语文3', 
        round(sum(CASE WHEN 语文>=70.5 THEN 1 ELSE 0 END)/count(1)*100,2) as 优秀率,     round(sum(CASE WHEN 语文>=58 THEN 1 ELSE 0 END)/count(1)*100,2) as 良好率,     round(sum(CASE WHEN 语文>=48 THEN 1 ELSE 0 END)/count(1)*100,2) as 及格率, 
       round(avg(语文),2) as 平均分  
from cj  where 班级='26'

[其他解释]
剩下的类似
SELECT  '语文3' ,
        ROUND(SUM(CASE WHEN 语文 >= 70.5 THEN 1
                       ELSE 0
                  END) / ( COUNT(*) * 100 ), 2) AS 优秀率
FROM    cj
WHERE   班级 = '26'

热点排行