select 科目,sum(decode(姓名, 张一,成绩)) 张一, sum(decode(姓名,王二,成绩)) 王二, sum(decode(姓名,李四,成绩)) 李四 from table group by 科目;
select 科目,sum(case 姓名='张一' then 成绩 else 0 end) 张一, sum(case 姓名='王二' then 成绩 else 0 end))) 王二, sum(case 姓名='李四' then 成绩 else 0 end))) 李四 from table group by 科目;
to:pumawang(快乐小林) 对不起,你写的sql我看不太懂,所以调试有些困难,sql plus 提示说 ERROR 位于第1行: ORA-00907:缺少右括号
to:beckhambobo(beckham)ERROR:位于第2 行: ORA-00923: 未找到预期 FROM 关键字
就是case .. then .. else .. end 的用法了。 多写括号了。 抱歉。 改正了,应该可以了吧: select 科目,sum(case 姓名='张一' then 成绩 else 0 end) 张一, sum(case 姓名='王二' then 成绩 else 0 end) 王二, sum(case 姓名='李四' then 成绩 else 0 end) 李四 from table group by 科目;
select 科目,sum(case when 姓名='张一' then 成绩 else 0 end) 张一, sum(case when 姓名='王二' then 成绩 else 0 end) 王二, sum(case when 姓名='李四' then 成绩 else 0 end) 李四 from table group by 科目;
sum(decode(姓名,王二,成绩)) 王二,
sum(decode(姓名,李四,成绩)) 李四
from table group by 科目;
sum(case 姓名='王二' then 成绩 else 0 end))) 王二,
sum(case 姓名='李四' then 成绩 else 0 end))) 李四
from table group by 科目;
ERROR 位于第1行:
ORA-00907:缺少右括号
ORA-00923: 未找到预期 FROM 关键字
而且这样计算效率很低
我认为你还是直接select
然后对结果记录集在程序中处理比较合理!
嗯,所言有理^_^
多写括号了。 抱歉。
改正了,应该可以了吧:
select 科目,sum(case 姓名='张一' then 成绩 else 0 end) 张一,
sum(case 姓名='王二' then 成绩 else 0 end) 王二,
sum(case 姓名='李四' then 成绩 else 0 end) 李四
from table group by 科目;
sum(case when 姓名='王二' then 成绩 else 0 end) 王二,
sum(case when 姓名='李四' then 成绩 else 0 end) 李四
from table group by 科目;