日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL--合并多条记录为一条记录

發布時間:2023/12/4 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL--合并多条记录为一条记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--作用:'源'表中,如果A列的記錄相同的,則把B列的記錄合并,再寫到'目的'表中,如果不相同,則原樣插入到'目的'表中 ---兩個原始表之一,源
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[源]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[源]
GO CREATE TABLE [dbo].[源] (
[編號] [int] IDENTITY (1, 1) NOT NULL ,
[相同] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[不同] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO ---兩個原始表之一,目的
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[目的]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[目的]
GO CREATE TABLE [dbo].[目的] (
[編號] [int] IDENTITY (1, 1) NOT NULL ,
[相同] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[不同] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
--要先按"相同"列進行排序編號,編號遞增,可以不從1開始,但要連續
declare @mac varchar(100),@mac1 varchar(100),@str varchar(550),@id int,@count int,@id1 int
select @id1=編號 from 源 where 編號 in (select min(編號) from 源 ) select @count=count(*) from 源
select @str=''
select @id=@id1
while @id<@count+@id1
begin
select @mac=相同 from 源 where 編號=@id
select @mac1=相同 from 源 where 編號=@id+1 if @mac=@mac1 and @id < @count+@id1-1
begin
select @str=@str+不同 from 源 where 編號=@id
select @str=@str+','

end
if @mac<>@mac1 or @id=@count+@id1-1
begin
select @str=@str+不同 from 源 where 編號=@id
insert into 目的(相同,不同) select @mac,@str
select @str=''
end
select @id=@id+1 end --truncate table 目的

轉載于:https://blog.51cto.com/38641581/99827

總結

以上是生活随笔為你收集整理的SQL--合并多条记录为一条记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。