首页 新闻 搜索 专区 学院

我有一张表,里面大概数据如下:

0
[已解决问题] 解决于 2016-05-05 15:08

怎么实现将score列的A、B、C按照3、2、1的值相加,求出score列的和来

我忒忙的主页 我忒忙 | 初学一级 | 园豆:28
提问于:2016-05-04 15:58
< >
分享
最佳答案
0
 select sum(
 case
 when score='A' then 3
 when score='B' then 2
 else 1
 end
 )  from table_name;
 
你的基础太差了
 
http://www.wyzc.com/mysql/?tg=3006123630
这是基础的MySQL材料,自己好好看看吧!基础不牢靠,干啥都白闹!
奖励园豆:5
我就叫你女王八 | 初学一级 |园豆:10 | 2016-05-05 15:04
其他回答(3)
1

select sum(case score when 'A' then 3 when 'B' then 2 when 'C' then 1 else 0 end) from [TableName]

其它情况设置为0分

龍☆ | 园豆:250 (菜鸟二级) | 2016-05-04 16:07
0

select sum(case t.score when 'A' then 3 when 'B' then 2 when 'C' then 1 end) from table t

刘宏玺 | 园豆:14016 (专家六级) | 2016-05-04 16:07
0

更好的一个方法是加一张表,如下

ScoreName  ScoreValue

A        3

B        2

C        1

然后你可以用Inner join表连接查询。需要修改数值的话也容易。

爱编程的大叔 | 园豆:30753 (高人七级) | 2016-05-04 19:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册