sql语句中的 行转列 查询

有时候多行数据需要一行显示,  这就需要行转列的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 班级

猜你喜欢

转载自blog.csdn.net/lfy609225258/article/details/81093915