sql 列转行问题??

net_08 2010-08-05 09:19:02


有一个表 Tab1只有一条数据 :
a b c d.....n
-----------------------
10 20 25 30....m

但是多少列不确定。

我想得到它有多少列就是多少行数据

col value
------ -------
a 10
b 20
c 25
d 30
......

...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
华夏小卒 2010-08-05
  • 打赏
  • 举报
回复
--> 测试数据: #tb
if object_id('tb') is not null drop table tb
go
create table tb (a int,b int,c int,d int,n varchar(1))
insert into tb
select 10,20,25,30,'m'

declare @s varchar(4000)

select @s= isnull(@s,'select cast(')+name+' as varchar(10)) from tb union all select cast('
from syscolumns where id=object_id('tb')

set @s=substring(@s,1,len(@s)-22)

exec(@s)

----------
10
20
25
30
m

(5 行受影响)
hao1hao2hao3 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 s_111111 的回复:]
把數據放EXCEL上,然後列轉行,一步操作就OK
[/Quote]

这个方法好,另外可以结合系统表syscolumns
select name from syscolumns where id = object_id('表名') 获取该表中的所有字段,然后结合一楼的代码来获取值就可以了。
s_111111 2010-08-05
  • 打赏
  • 举报
回复
把數據放EXCEL上,然後列轉行,一步操作就OK
水族杰纶 2010-08-05
  • 打赏
  • 举报
回复
select 'a' as col,
a
from tab1
union all
select 'b' as col,
b
from tab1
union all
select 'c' as col,
c
from tab1
....

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧