改列换行

dixiao4 2003-12-12 02:40:20
数据物理存款方式
A B C
A D E
A R T
A T U
如何使之查询出来后以这种形式显示
A B C D E R T T U
...全文
33 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zjcxc 2003-12-12
--测试
declare @s varchar(8000)
set @s=''
select @s=@s+','''+a+''','''+b+''','''+c+''''
from(
select a='A',b='B',c='C'
union all select 'A','D','E'
union all select 'A','R','T'
union all select 'A','T','U'
) a

set @s=substring(@s,2,8000)
exec('select '+@s)

/*--结果
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
A B C A D E A R T A T U


--*/
  • 打赏
  • 举报
回复
zjcxc 2003-12-12
--上面的错了一点
declare @s varchar(8000)
set @s=''
select @s=@s+','''+字段1+''','''+字段2+''','''+字段3+'''' from 表
set @s=substring(@s,2,8000)
exec('select '+@s)
  • 打赏
  • 举报
回复
zjcxc 2003-12-12
declare @s varchar(8000)
set @s=''
select @s=@s+','''+字段1+''','''+字段2+''','''+字段3+'''' from 表
set @s=substring(@s,2,8000)
exec(@s)
  • 打赏
  • 举报
回复
txlicenhe 2003-12-12
同意中海,参考:
http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6941645
[交流]行列转换
  • 打赏
  • 举报
回复
victorycyz 2003-12-12
--设表名为A,列名分别为col1, col2, col3

declare @str varchar(1000)
set @str='A'
select @str=@str +' ' + col2 + ' ' + col3 from A where col1='A'
select @str
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
加入

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2003-12-12 02:40
社区公告
暂无公告