如何把纵向表转为横向表(只轉字段名)?

magnetmoon 2003-09-11 05:17:56
select a.name from syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
order by a.colorder

結果如下:
au_id
au_lname
au_fname
phone
address
city
state
zip
contract

如何用語句,生成如下的結果:
au_id au_lname au_fname phone address city state zip contract

...全文
62 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
magnetmoon 2003-09-12
  • 打赏
  • 举报
回复
我想轉換成多個字段,
field1 field2 field2 field4 ...
dep_bmdm dep_bmmx dep_ggl dep_tddm dep_wip

而不是下面的一個字段,如何實現
No column name
dep_bmdm dep_bmmx dep_ggl dep_tddm dep_wip
...
magnetmoon 2003-09-12
  • 打赏
  • 举报
回复
declare @a varchar(1000),@str varchar(1000)
set @a=''
select @a=@a+a.name+', ' from syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
set @str='select '+ substring(@a,1,len(@a)-1)+' from authors' --此处的authors表可以换成你想要的表名。
exec(@str)
不知道这样是不是你想要的。

就是‘select * from authors’嗎,不是我想要的,
我是想把字段作為第一條記錄放在結果集中

LoveSQL 2003-09-12
  • 打赏
  • 举报
回复
declare @a varchar(1000),@str varchar(1000)
set @a=''
select @a=@a+a.name+', ' from syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
set @str='select '+ substring(@a,1,len(@a)-1)+' from authors' --此处的authors表可以换成你想要的表名。
exec(@str)
不知道这样是不是你想要的。
shaken 2003-09-11
  • 打赏
  • 举报
回复
这些都要在sql server 2000才能实现的。他的应该是sql server7.0
aierong 2003-09-11
  • 打赏
  • 举报
回复
CREATE FUNCTION fun_str()
RETURNS VARCHAR(200) AS
BEGIN
DECLARE @str VARCHAR(200)
SElect @str =' '
SELECT @str =@str+a.name+' '
FROM syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
RETURN @str
END


select dbo.fun_str()
aierong 2003-09-11
  • 打赏
  • 举报
回复
CREATE FUNCTION fun_str2()
RETURNS VARCHAR(200) AS
BEGIN
DECLARE @str VARCHAR(200)
SElect @str =' '
SELECT @str =@str+a.name+' ' FROM syscolumns a join sysobjects b on a.id=b.id where b.name='authors'
RETURN @str
END


select dbo.fun_str2()
flowerchilde 2003-09-11
  • 打赏
  • 举报
回复
不行,結果是:contract
pengdali 2003-09-11
  • 打赏
  • 举报
回复
declare @a varchar(1000)
set @a=''

select @a=@a+' '+a.name from syscolumns a join sysobjects b on a.id=b.id
where b.name='authors'
order by a.colorder

select ltrim(@a)
magnetmoon 2003-09-11
  • 打赏
  • 举报
回复
up

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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