按任意的字段旋转的存储过程
  7jPfnBIFtnum 2024年08月02日 39 0
/*范例表
create table 表1 (
號數 char(10),
成績 integer,
科目 char(10) )
insert into 表1 select '1',60,'数学'
union select '1',43,'物理'
union select '1',100,'语文'
union select '2',87,'语文'
union select '2',99,'数学'
union select '2',89,'物理'
union select '2',87,'语文'
*/
Create procedure RowToColumn
@Table varchar(30), --表名
@MasterField varchar(30), --待转名称列名 char字段
@SlaveField varchar(30), --待转数据列名 int型字段
@GroupID varchar(30) --分组ID
as
--调用方法 RowToColumn '表1','科目','成績','號數'
--
by jinjazz 环境 SQLServer2000
begin
DECLARE @mSQL VARCHAR(8000)
set @msql = 'DECLARE @SQL VARCHAR(8000)'
set @msql = @msql + ' set @SQL= ''select ' + @GroupID + ''''
set @msql = @msql + ' SELECT @SQL= @SQL+'',max(CASE WHEN ' +
@MasterField + '=''''''+' + @MasterField + '+'''''' then ' + @SlaveField +
' else 0 end )[''+' + @MasterField + '+'']'' from(select distinct ' +
@MasterField + ' from ' + @Table + ') a'
set @msql = @msql + ' SET @SQL=@SQL+ '' from ' + @Table + ' group by ' +
@GroupID + ''''
set @msql = @msql + ' exec(@SQL)'
exec(@msql)
end
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月02日 0

暂无评论

推荐阅读
  7jPfnBIFtnum   2024年06月14日   207   0   0 存储redis内存
  7jPfnBIFtnum   2024年08月09日   44   0   0 存储mysql
  7jPfnBIFtnum   2024年08月09日   54   0   0 存储数据
  7jPfnBIFtnum   2024年06月14日   179   0   0 存储动态
7jPfnBIFtnum