SQL中合并多条记录中某一个字段 15
selectda01fromtdm01得到的结果不确定多少列,现在想转化成一行,用适合sqlserver2008的写法写出来。例如结果集:da01001002003004...
select da01 from tdm01 得到的结果不确定多少列,现在想转化成一行,用适合sql server 2008的写法写出来。
例如结果集: da01
001
002
003
004
005
现在想变为001002003004005
不要函数写法和游标写法,我的后台已经比较慢了。 展开
例如结果集: da01
001
002
003
004
005
现在想变为001002003004005
不要函数写法和游标写法,我的后台已经比较慢了。 展开
6个回答
展开全部
创建表
create table tdm01
(da01 varchar(10))
insert into tdm01 values ('001')
insert into tdm01 values ('002')
insert into tdm01 values ('003')
insert into tdm01 values ('004')
insert into tdm01 values ('005')
执行
select distinct da01=
stuff((select ''+da01 from tdm01 t where da01=t.da01 for xml path('')), 1, 1, '')
from tdm01
截图
追问
我这边会报错: 'xml' 附近的语法不正确。
展开全部
这个可以写一个函数:
create function f1(@id AS int)
returns varchar(100)
as
declare @a as varchar(100)
set @a=''
select @a=@a+','+备注 from 表2 where cid=@id
return substring(@a,2,len(@a))
然后这样写查询:
select 企业名称,联系人,f1(id) from 表1
create function f1(@id AS int)
returns varchar(100)
as
declare @a as varchar(100)
set @a=''
select @a=@a+','+备注 from 表2 where cid=@id
return substring(@a,2,len(@a))
然后这样写查询:
select 企业名称,联系人,f1(id) from 表1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以写一个函数:
create function f1(@id AS int)
returns varchar(100)
as
declare @a as varchar(100)
set @a=''
select @a=@a+','+备注 from 表2 where cid=@id
return substring(@a,2,len(@a))
然后这样写查询:
select 企业名称,联系人,f1(id) from 表
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种事情交给后台做啊。。数据库里搞这种好浪费性能。。
把结果集返回到程序,然后组装一下 insert or update 随你。。。
不过你这么倔强。。
badkano的回答就可以
以下是stuff的语法。。
http://msdn.microsoft.com/zh-cn/library/ms188043.aspx
STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。
STUFF ( character_expression , start , length , replaceWith_expression )
把结果集返回到程序,然后组装一下 insert or update 随你。。。
不过你这么倔强。。
badkano的回答就可以
以下是stuff的语法。。
http://msdn.microsoft.com/zh-cn/library/ms188043.aspx
STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。
STUFF ( character_expression , start , length , replaceWith_expression )
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用程序写一个for循环拼成一个字符串不行么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询