sqlserver中:
1 /*
2 1 * Description:对数据表进行行列转换
3 2 * Author:llf
4 3 * 调用说明:exec SP_RowChangeCol '学生成绩表','姓名','课程','分数','desc',0,0,'where 年级=''一年级'''
5 4 * 该存储过程调用的相关函数:dbo.Get_StrArrayLength(@groupCol,',');dbo.dbo.Get_StrArrayStrOfIndex(@groupCol,',',1)
6 */
7
8 Alter proc SP_RowChangeCol
9 @tableName varchar(100), --要转换的数据表名(学生成绩表)
10 @groupCol varchar(100), --分组列(学生姓名)
11 @changeCol varchar(100), --要转换的列(考试科目)
12 @countCol varchar(100), --统计列(成绩)
13 @orderby varchar(4), --转换列的排序规则(升序asc,降序desc)
14 @isColSum int, --是否统计列(1是;0否)
15 @isRowSum int, --是否统计行(1是;0否)
16 @strWhere varchar(max) --查询条件('where 年级=''一年级''')
17 as
18 begin
19 declare @sqlhead varchar(8000),@sqlend varchar(8000)
20 ,@sql1 varchar(8000),@sql2 varchar(8000),@sql3 varchar(8000),@sql4 varchar(8000)
21 ,@i int,@ic varchar(20),@sql varchar(1000)
22
23
24