sql 语句写的行列转换

Posted jkq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句写的行列转换相关的知识,希望对你有一定的参考价值。

  以前面试老遇到一个行列转换的问题,今天没事,顺便记录一下

假设有这样一张表,如下图,创建表就不说了,直接建或者SQL语句都行 

sql语句如下

--第一种
select name as 姓名,
max(case Subject when \'语文\' then Result else 0 end) as 语文,
max(case Subject when \'数学\' then result else 0 end) as 数学,
max(case Subject when \'英语\' then Result else 0 end) as 英语,
max(case Subject when \'政治\' then Result else 0 end) as 政治,
max(case Subject when \'物理\' then Result else 0 end) as 物理
from cj group by Name

--第二种
select Subject as 科目,
MAX(case Name when \'张三\' then Result else 0 end) as 张三,
MAX(case Name when \'李四\' then Result else 0 end) as 李四,
MAX(case Name when \'王五\' then Result else 0 end) as 王五
from cj group by Subject	

  运行结果如下

 

 

以上是关于sql 语句写的行列转换的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句行列转换

求oracle大神帮忙解决下面这个行列转换问题,谢谢!

[高分悬赏] sql 行列转换 请高人指点

sql动态实现行列转换

sql行列转换和累加问题~~~

SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句