sql查询怎么将列头放在行中?
一般我们的sql查询结果为:完好送达率准时送达率清关及时率遗失破损件数重新派送次数发货准确率0.890.890.890.890.890.890.890.89我现在想要得到...
一般我们的sql查询结果为:
完好送达率 准时送达率 清关及时率 遗失破损件数 重新派送次数 发货准确率 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89
我现在想要得到如下结果:
列名 数据
完好送达率 89%
准时送达率 89%
清关及时率 89%
遗失破损件数 89%
重新派送次数 89%
发货准确率 89%
未扫描次数 89%
客户投诉率 89%
请各位技术支持! 展开
完好送达率 准时送达率 清关及时率 遗失破损件数 重新派送次数 发货准确率 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89
我现在想要得到如下结果:
列名 数据
完好送达率 89%
准时送达率 89%
清关及时率 89%
遗失破损件数 89%
重新派送次数 89%
发货准确率 89%
未扫描次数 89%
客户投诉率 89%
请各位技术支持! 展开
展开全部
基本思路:从系统表syscolumns里取出原表的所有列名,然后用游标循环,通过动态sql语句取出每一列的值,存放到临时表中。
declare @tmp table(列名 varchar(50),数据 float)
DECLARE mycursor CURSOR
for select name from syscolumns where id=object_id('原表') --从系统表中取出所有列名
OPEN mycursor --打开游标
declare @fieldname sysname --定义变量
fetch next from mycursor into @fieldname --取列名
while (@@FETCH_STATUS <> -1) --判断游标
begin
IF (@@FETCH_STATUS <> -2)
begin
insert into @tmp
exec('select top 1 '''+@fieldname+''','+@fieldname+' from 原表')
--用动态sql语句查询列名和列值,存入临时表
fetch next from mycursor into @fieldname --取下一个列名
end
end
close mycursor --关闭游标
DEALLOCATE mycursor --销毁游标
select * from @tmp
结果:
列名 数据
完好送达率 0.89
准时送达率 0.89
清关及时率 0.89
遗失破损件数 0.89
重新派送次数 0.89
发货准确率 0.89
declare @tmp table(列名 varchar(50),数据 float)
DECLARE mycursor CURSOR
for select name from syscolumns where id=object_id('原表') --从系统表中取出所有列名
OPEN mycursor --打开游标
declare @fieldname sysname --定义变量
fetch next from mycursor into @fieldname --取列名
while (@@FETCH_STATUS <> -1) --判断游标
begin
IF (@@FETCH_STATUS <> -2)
begin
insert into @tmp
exec('select top 1 '''+@fieldname+''','+@fieldname+' from 原表')
--用动态sql语句查询列名和列值,存入临时表
fetch next from mycursor into @fieldname --取下一个列名
end
end
close mycursor --关闭游标
DEALLOCATE mycursor --销毁游标
select * from @tmp
结果:
列名 数据
完好送达率 0.89
准时送达率 0.89
清关及时率 0.89
遗失破损件数 0.89
重新派送次数 0.89
发货准确率 0.89
展开全部
写个过程或函数转换一下,或者借助临时表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以用select case 处理
简单的行列转换,百度一下
简单的行列转换,百度一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用游标啊
追问
如题采取答案:如果涉及到多表且有相同列名,这种情况怎么做处理?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询