⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 横转竖-1.sql

📁 sqlserver 数据库编程的绝好脚本
💻 SQL
字号:
--行列转换示例

--测试数据
create table 表([11] varchar(2),[22] int,[33] int,[44] int,[55] int)
insert 表 select 'aa',1,2,3,6 
union all select 'bb',0,1,3,5 
union all select 'cc',1,2,3,6
union all select 'dd',1,2,3,6
union all select 'ee',1,2,3,6
go

--查询处理
declare @s1 varchar(8000),@s2 varchar(8000)
	,@s3 varchar(8000),@s4 varchar(8000),@s5 varchar(8000)
	,@i varchar(10)
select @s1='',@s2='',@s3='',@s4='',@s5='',@i='0'
select @s1=@s1+',@'+@i+' varchar(8000)'
	,@s2=@s2+',@'+@i+'='''''
	,@s3=@s3+'
select @'+@i+'=@'+@i+'+'',[''+[11]+'']=''+cast(['+name+'] as varchar) from 表'
	,@s4=@s4+',@'+@i+'=''select ''+substring(@'+@i+',2,8000)'
	,@s5=@s5+'+'' union all ''+@'+@i
	,@i=cast(@i as int)+1
from syscolumns 
where object_id('表')=id and colid<>1

select @s1=substring(@s1,2,8000)
	,@s2=substring(@s2,2,8000)
	,@s4=substring(@s4,2,8000)
	,@s5=substring(@s5,16,8000)

exec('declare '+@s1+'
select '+@s2+@s3+'
select '+@s4+'
exec('+@s5+')')
go

--删除测试表
drop table 表

/*--测试结果
aa          bb          cc          dd          ee          
----------- ----------- ----------- ----------- ----------- 
1           0           1           1           1
2           1           2           2           2
3           3           3           3           3
6           5           6           6           6

(所影响的行数为 4 行)
--*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -