sql 数据库行列转换

变成如何实现呢?字段名随意取,还有字段类型都是Varchar... 变成 如何实现呢 ?字段名随意取,还有字段类型都是Varchar 展开
 我来答
通大通达
2012-09-17 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:26.5万
展开全部
我提供一个思路,用游标一个个取数 + 动态拼接sql

declare @c1 varchar(50)
declare @c2 varchar(50)
declare @STR varchar(8000)
set @STR='select ''转成一行'' '

DECLARE cs CURSOR --一行行取c1,c2存入变量 @c1,@c2
for select c1,c2 from TABLE1 --TABLE1 即为原表
open cs

fetch next from cs into @c1,@c2
while @@FETCH_STATUS =0
begin
set @STR = @STR + ','+@c1+' , '+@c2+''
end

set @STR = @STR + ‘ into TABLE2 ’
exec(@STR) --执行拼接的sql
Select * from TABLE2 --Table2中即为所需要的转成一行的结果

这台电脑上没有装sql server。。这是用文本编辑出来的,可能运行时会报些错,调整下应该就可以了
追问
PIVOT函数能实现吗?万一字段名有二十个呢?岂不这种拼接写起来挺长的
百度网友d0016356e
2012-09-15 · TA获得超过1089个赞
知道答主
回答量:194
采纳率:0%
帮助的人:143万
展开全部
。。。这不是行列转换。。。这是并到一行了
行列结果应该是
1 2 3
C1 1 3 5
C2 2 4 6
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式