数据库格式:
name subject countnum
狗尾 语文 30
狗尾 数学 32
狗尾 外语 0
大熊 语文 40
大熊 数学 50
大熊 外语 38
狗尾 语文 70
实现目标:
name 语文 数学 外语
大熊 40 50 0
狗尾 100 32 0
实现语句:
select name,语文=isnull(sum(case subject when '语文' then COUNTNUM end),0),
数学=isnull(sum(case subject when '数学' then COUNTNUM end),0),
英语=isnull(sum(case subject when '英语' then COUNTNUM end),0)
from GOUGE
group by NAME
order by NAME
通过case判断当前行的subject是不是语文,是的话就取counternum的值.
外面再加个sum来取和