数据库实现行列转换(mysql示例)
这篇文章通过sql示例代码给大家介绍了mysql数据库如何实现行列转换,下面话不多说,直接来看示例代码吧。
原表:
表名:user ---------------------------------------- name|course|grade ---------------------------------------- zhangsan|Java|70 ---------------------------------------- zhangsan|C++|80 ---------------------------------------- lisi|java|90 ---------------------------------------- lisi|C#|60 ----------------------------------------
用一条SQL语句得到如下形式:
---------------------------------------- name|java|C++|C# ---------------------------------------- zhangsan|70|80|null ---------------------------------------- lisi|90|null|60 ----------------------------------------
方案一
selectname, sum(casewhencourse='java'thengradeend)asjava, sum(casewhencourse='C++'thengradeend)asC++, sum(casewhencourse='C#'thengradeend)asC# fromtestgroupbyname
方案二
selectdistinctc.`name`ASname, (selectgradefromtestwherename=c.`name`andcourse='java')asjava, (selectgradefromtestwherename=c.`name`andcourse='C++')asC++, (selectgradefromtestwherename=c.`name`andcourse='C#')asC# fromtestc
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有一定的帮助,如果有疑问大家可以留言交流。