
正文
sqlserver合并分组,sqlserver 合并字段
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SQL 如何将一个表中的两条或多条拥有相同ID的记录合并为一条?
一、创建表:
create table stuUnion
(
sid int identity primary key,
cid int,
id varchar(500)
)
二、添加数据:
insert into stuUnion
elect 1,'a' union
select 1,'b' union
select 2,'c' union
select 2,'d' union
select 3,'e' union
select 3,'f' union
select 3,'g'
三、用标量函数查询:
创建标量函数:
create function b(@cid int)
returns varchar(500)
as
begin
declare @s varchar(500)
select @s=isnull(@s+'','')+rtrim(id)+',' from stuUnion where cid=@cid
return @s
end;
用标量函数查询:
select cid,dbo.b(cid) as id from stuUnion group by cid
用sqlserver的xml:
select cid,ID=STUFF((select ' '+rtrim(id)+',' from stuUnion where st.cid=cid order by id for XML path('')),1,1,'') from stuUnion st group by cid
相关问答
Q1: 在SQLserver中 怎样将两个库中同样结构的两个表的数据进行合并
分类: 电脑/网络 程序设计 其他编程语言
问题描述:
在SQLserver中 怎样将两个库中同样结构的两个表的数据进行合并
数据有可能存在重复
表结构完全相同
解析:
可以将两个表中的数据提出来(重复的过滤)写入一个临时表中,清空这两个表,再将临时表的数据回写入这两个表里面。为防出错,请先备份数据库再操作。
如:
第一步:select * from 数据库名1..表名1 into #临时表名
第二步:insert into #临时表名 (字段名1,字段名2……) (select a.字段名1,a.字段名2…… from 数据库名2..表名2 a,数据库名1..表名1 b where 数据库名2..表名2.主键字段名数据名1..表名1.主键字段名 )
第三步:delete from 数据库名1..表名1
第四步:delete from 数据库名2..表名2
第五步:insert into 数据库名1..表名1 from #临时表
第六步:insert into 数据库名2..表名2 from #临时表
第七步:drop table #临时表
注:如果两个表中没有主键,你只有在第二条语句中where 项中一个字段一个字段地添加条件判断了。
Q2: sql中如何合并两个特定的字段?
1、创建模拟的数据表
create table GoodsCate(
Mid int not null,
Code varchar(10) not null,
Name varchar(20) not null,
)
2、添加模拟数据
insert into GoodsCate(Mid,Code,Name) values(1,'6801','电子仪器')
insert into GoodsCate(Mid,Code,Name) values(2,'6802','激光仪器')
insert into GoodsCate(Mid,Code,Name) values(3,'6803','扫描仪器')
3、sqlserver中的合并
select (CAST(Code as varchar(20))+'_'+CAST(Name as varchar(20))) 合并结果集 from GoodsCate
4、最后结果显示。
Q3: sqlserver 分组 拼接其他字段
SQL2005或以上才可以:
Declare
@t
Table
(
ID
int,
FName
varchar(20),
CName
varchar(20),
CAge
varchar(20)
)
Insert
Into
@t
select
1,'吴亮','吴1','3岁'
Union
select
1,'吴亮','吴2','5岁'
Union
select
1,'吴亮','吴3','9岁'
Union
select
4,'麦大伟','麦1','3岁'
Union
select
4,'麦大伟','麦2','5岁'
Union
select
6,'张思','张1','3岁'
下面是合并:
Select
ID,FName,CName=Stuff((Select
','+CName
From
@t
Where
ID=T.ID
For
xml
path('')),1,1,''),
CAge=Stuff((Select
','+CAge
From
@t
Where
ID=T.ID
For
xml
path('')),1,1,'')
From
@t
T
Group
by
id,FName
sqlserver合并分组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sqlserver 合并字段、sqlserver合并分组的信息别忘了在本站进行查找喔。








