SQL行专列 其实很简单

如题

其实行专列真心很简单 只要懂得原理就能看透

分析下代码

select name ,
  max(case  km when '数学' then fs  else 0  end ) 数学,
    max(case  km when '英语' then fs  else 0  end ) 英语,
      max(case  km when '语文' then fs  else 0  end ) 语文
from hzl
group by name

这其实就只是一个group by的用法而已 

case  km when '数学' then fs  else 0  end

这个就是查询该人的全部数学成绩后选取最大的值(把为NULL的换成了0 这样就可以做大小判断了)
原文地址:https://www.cnblogs.com/Rock-Lee/p/3311121.html