写一个存储过程,自己设计一个表,把表里的行、列数据做一个反转再显示出来

 我来答
frogley
2013-08-11 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1082万
展开全部

结果表里面,第一行是列名还是数据?像下面这样可以吗?

--首先这张表需要有一个主键,这里假设姓名是主键(即不会出现重复的姓名)
create table tt4 ([姓名] varchar(10),[年龄] int, [性别] varchar(10));
insert into tt4
select '小张',10,'男' union all
select '小李',11,'女' union all
select '小王',9,'男' union all
select '小赵',11,'女' union all
select '小刘',11,'男' union all
select '小武',10,'女'
--行列反转
declare @n int;
set @n=1;
declare @sql varchar(2000);
set @sql='select ';
select @sql=@sql+''''+[姓名]+''' ['+cast(@n as varchar)+'],',@n=@n+1 from tt4 order by [姓名];
set @sql=left(@sql,len(@sql)-1)+' union all select ';
select @sql=@sql+''''+cast([年龄] as varchar)+''',' from tt4 order by [姓名];
set @sql=left(@sql,len(@sql)-1)+' union all select ';
select @sql=@sql+''''+[性别]+''',' from tt4 order by [姓名];
set @sql=left(@sql,len(@sql)-1);
exec(@sql);

结果如下:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式