SQL 如何将一个表中的两条或多条拥有相同ID的记录合并为一条?

例:表A中有列和数据:Col1Col2Col3Col41abNULL2a1b1NULL2a1NULLc1合并效果为:Col1Col2Col3Col41abNULL2a1b... 例:表A中有列和数据:
Col1 Col2 Col3 Col4
1 a b NULL
2 a1 b1 NULL
2 a1 NULL c1
合并效果为:
Col1 Col2 Col3 Col4
1 a b NULL
2 a1 b1 c1
展开
 我来答
幸运的小李菲刀
2018-03-30 · TA获得超过1.7万个赞
知道小有建树答主
回答量:38
采纳率:90%
帮助的人:1.8万
展开全部

一、创建表:

  • 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'

三、用标量函数查询:

  1. 创建标量函数:

    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;

  2. 用标量函数查询:

    select cid,dbo.b(cid) as id from stuUnion group by cid

  3. 用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

枯枝泪
2012-12-25 · TA获得超过121个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:92.3万
展开全部
你好,如果是查询出来显示的话 直接 分组就行了
如果你要是 把上面的数据生成新的数据插入到表中的话...就直接插入操作.

希望能帮到你吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋色艳阳Lee
2012-12-25
知道答主
回答量:5
采纳率:0%
帮助的人:7396
展开全部
select distinct * into temp_table from table_name
go
delete from table_name
go
insert into table_name select * from
go
追问
您的意思是:查询语句是排除相同的记录插入临时表temp_table,删除原有表table_name的记录,最后查出temp_table中的记录插回table_name表中?
我的问题不是这个意思哦!而且我的表中没有重复的记录!不过还是谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baiynijecym
2012-12-25 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1149万
展开全部
不清楚你的数据会不会有两笔同时存在,但不同值的数据
如果只是上面的这种数据可以这样来实现
select col1,max(col2) as col2,max(col3) as col3,max(col4) as col4 from table group by col1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤芳自赏朱梅
2020-09-22
知道答主
回答量:1
采纳率:0%
帮助的人:556
展开全部
怎么解决的,我也遇到这种情况了,帮帮忙哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式