行列转换
1、列→行(UNPIVOT)
原始数据:表S_GC

/*执行sql*/
select S_no,S_name,P.S_course,P.S_grade from ( select S_no,S_name,S_chinese,S_math,S_English from S_GC )T UNPIVOT ( S_grade for S_course in(S_chinese,S_math,S_English) )P
执行结果:

2、行→列(PIVOT)
原始数据:表S_GT

/*执行sql*/
select * from S_GT as P PIVOT (sum(S_grade) for S_course in(S_chinese,S_math,S_English) )T
执行结果:

3、行→列(字符串拼接)
原始数据:

/*执行sql*/ select S_no,S_name,courses=stuff((select ','+S_course from S_GK t where S_no=a.S_no for xml path('')), 1, 1, '') from S_GK a group by S_no,S_name
执行结果:

浙公网安备 33010602011771号