求将3列合并成1列的sql语句

angleoldhen 2006-11-01 02:57:34
原有3列数据
列名分别为:author1 author2 author3

现在想将后面两列的数据并到第一列来,即只保留author1列,合并的数据用","隔开,要怎么写呢?
...全文
734 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjunjarysky 2006-11-02
  • 打赏
  • 举报
回复
mark!
xiao_deng 2006-11-01
  • 打赏
  • 举报
回复

select author1 + ',' + author2 + ',' + author3 as author1
from 表名
dawugui 2006-11-01
  • 打赏
  • 举报
回复
select [author1] =cast(author1 as varchar)+','+cast(author2 as varchar)+','+cast(author3 as varchar)

是的,将不是字符串的数据强行转换为字符串后合在一起.
angleoldhen 2006-11-01
  • 打赏
  • 举报
回复
可能roy_88比较符合我的意思,前几位只是选择数据,我是想动表结构,把后两列数据和第一列合并后打算把后两列都删除.列里的数据都是字符型

roy_88 :下面这句是将后两列数据移进第一列的吗?

select [author1] =cast(author1 as varchar)+','+cast(author2 as varchar)+','+cast(author3 as varchar)
from 表

中国风 2006-11-01
  • 打赏
  • 举报
回复
这是更新方法:alter table 表 drop column author2 --删除列名
alter table 表 drop column author3 --删除列名

查询方法改一下就行了
select [author1] =cast(author1 as varchar)+','+cast(author2 as varchar)+','+cast(author3 as varchar)
from 表

中国风 2006-11-01
  • 打赏
  • 举报
回复
update 表
set author1=convert(varchar,author1)+','+convert(varchar,author2)+','+convert(varchar, author3)
update 表
set author1=cast(author1 as varchar)+','+cast(author2 as varchar)+','+cast(author3 as varchar,)
allright_flash 2006-11-01
  • 打赏
  • 举报
回复
select author1 + ',' + author2 + ',' + author3 as author
from tablename
where ......
或者
select concat(author1,',',author2,',',author3) as author
from tablename
where ......
点点星灯 2006-11-01
  • 打赏
  • 举报
回复

--如果这三列的数据类型都是字符串
select author1+','+author2+','+author3 from tablename

--如果这三列的数据类型都是数字
select convert(varchar(50),author1)+','+convert(varchar(50),author2)+','+convert(varchar(50),author3)
from tablename
OracleRoob 2006-11-01
  • 打赏
  • 举报
回复

select author1 + ',' + author2 + ',' + author3 as author1
from 表名

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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