在看行转列的时候,看到网上很多资料都写的太复杂,我记录一个比较简单的方式,作为自己行转列的初步学习可以看看,解决比较复杂的业务问题可能帮不上忙,勿喷。
主要实现思路就是,先将行转成列,但是这个时候,会出现:
执行语句:
SELECT NAME
姓名,
CASE
SUBJECT
WHEN '语文' THEN
score
END 语文,
CASE
SUBJECT
WHEN '数学' THEN
score
END 数学,
CASE
SUBJECT
WHEN '英语' THEN
score
END 英语
FROM
student
效果图:
这种结果,然后就需要使用聚合函数来将数据合并到一列,因为这里是分数,使用sum求和函数,如果是字符串的话可以用concat来聚合。
下面是实现过程:
数据示例:
</