sql 如何动态多行转多列

sql如何动态多行转多列,只知道表名不知道表里数据的情况下... sql 如何动态多行转多列,只知道表名不知道表里数据的情况下 展开
 我来答
百度网友7dacf80a0
推荐于2016-10-18 · TA获得超过799个赞
知道小有建树答主
回答量:252
采纳率:100%
帮助的人:143万
展开全部
使用存储过程。
方法如下:
1、先查询出表里面的列名称
2、行列转换

举例
1、查询student字段名
SELECT
a.colorder as _colOrder, --字段序号
a.name as _colName --字段名
FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<> 'dtproperties'
left join syscomments e
on a.cdefault=e.id
left join sys.extended_properties g
on a.id=g.major_id AND a.colid = g.minor_id
where d.name='student' --所要查询的表
order by a.id,a.colorder

2、行列转换
SELECT
MAX (CASE WHEN SetupID = 1 THEN SetupName ELSE NULL END ) AS [1],
MAX (CASE WHEN SetupID = 2 THEN SetupName ELSE NULL END ) AS [2],
MAX (CASE WHEN SetupID = 3 THEN SetupName ELSE NULL END ) AS [3],
MAX (CASE WHEN SetupID = 4 THEN SetupName ELSE NULL END ) AS [4]
......
FROM table
百度网友477033f12
2012-05-08 · TA获得超过125个赞
知道小有建树答主
回答量:236
采纳率:100%
帮助的人:301万
展开全部
这个关键还得知道原来的行里列的分布吧,不然最简单的如果只有一列的话,直接行号边列名就行了呗,哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lishan2100
2012-05-08 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:57%
帮助的人:44.3万
展开全部
写存储过程实现
追问
然后呢- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式