有时候多行数据需要一行显示, 这就需要行转列的sql啦.
首先 ,要知道 行转列当然是要以某个字段进行分组的,然后再根据表中 一个字段的值做转列后的字段名, 这个值所对应的另一个字段作为 值
示例:
表名: XX班
班级 学生 身高 一班 甲 161 一班 乙 162 一班 丙 163 一班 丁 164 一班 戊 165
假如:要将上表进行转列 转换结果如下表:
班级 甲 乙 丙 丁 戊 一班 161 162 163 164 165
以班级进行分组, 以学生 作为字段名,以身高为每个学生字段的额值.
SELECT 班级
SUM(CASE WHEN 学生 = 甲 TNEN 身高 ELSE 0 END) 甲,
SUM(CASE WHEN 学生 = 乙 TNEN 身高 ELSE 0 END)乙 ,
SUM(CASE WHEN 学生 = 丙 TNEN 身高 ELSE 0 END)丙 ,
SUM(CASE WHEN 学生 = 丁 TNEN 身高 ELSE 0 END)丁 ,
SUM(CASE WHEN 学生 = 戊 TNEN 身高 ELSE 0 END) 戊
FROM XX班 GROUP BY 班级