濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 分組字符合并SQL語句 按某字段合并字符串之一(簡單合并)

分組字符合并SQL語句 按某字段合并字符串之一(簡單合并)

熱門標(biāo)簽:零成本地圖標(biāo)注賺錢 家庭農(nóng)場地圖標(biāo)注名稱怎樣起名 互聯(lián)網(wǎng)電話外呼系統(tǒng) 千呼電話機(jī)器人可以試用嗎 我要地圖標(biāo)注數(shù)量有限制嗎 電話機(jī)器人怎么代理商 400電話辦理泰安 安卡拉地圖標(biāo)注app 電銷需要外呼系統(tǒng)嗎

標(biāo)題:按某字段合并字符串之一(簡單合并)


描述:將如下形式的數(shù)據(jù)按id字段合并value字段。
id    value
----- ------
1     aa
1     bb
2     aaa
2     bbb
2     ccc
需要得到結(jié)果:
id     value
------ -----------
1      aa,bb
2      aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)

1、sql2000中只能用自定義的函數(shù)解決

create table tb(id int, value varchar(10))

insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2,'ccc')
go



create function dbo.f_str(@id int) 
returns varchar(100)
as
begin
 
declare @str varchar(1000) 
set @str='' select @str=@str+''+cast(value as varchar) 
from tb where id = @id 
set @str=right(@str , len(@str) - 1) 
return @str
end
go



--調(diào)用函數(shù)


select id , value = dbo.f_str(id) from tb group by id


drop function dbo.f_str

drop table tb

2、sql2005中的方法

create table tb(id int, value varchar(10))

insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go

select id, [value] = stuff((select ',' + [value] from tb t where id = tb.id 
for xml path('')) , 1 , 1 , '')from tb group by id

drop table tb

3、使用游標(biāo)合并數(shù)據(jù)

create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go

declare @t table(id int,value varchar(100))
--定義結(jié)果集表變量
--定義游標(biāo)并進(jìn)行合并處理

declare my_cursor cursor local for
select id , value from tb
declare @id_old int , @id int , @value varchar(10) , @s varchar(100)
open my_cursor fetch my_cursor into @id , @value
select @id_old = @id , @s=''while @@FETCH_STATUS = 0
begin
 if @id = @id_old
  select @s = @s + ',' + cast(@value as varchar) else
  begin
  insert @t values(@id_old , stuff(@s,1,1,'')) 
  select @s = ',' + cast(@value as varchar) , @id_old = @id
  end
 fetch my_cursor into @id , @value END 
 insert @t values(@id_old , stuff(@s,1,1,''))
 close my_cursor
 deallocate my_cursor
 select * from @t
drop table tb

以上就是關(guān)于分組字符合并SQL語句的介紹。希望對(duì)大家有所幫助。

您可能感興趣的文章:
  • mysql單字段多值分割和合并的處理方法
  • Mysql合并結(jié)果接橫向拼接字段的實(shí)現(xiàn)步驟
  • MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法分析
  • mysql 列轉(zhuǎn)行,合并字段的方法(必看)
  • sql server 中合并某個(gè)字段值的實(shí)例
  • mysql中合并兩個(gè)字段的方法分享
  • SQL函數(shù)將某個(gè)字段合并在一起的操作

標(biāo)簽:東營 新鄉(xiāng) 黃山 濱州 文山 池州 來賓 大同

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《分組字符合并SQL語句 按某字段合并字符串之一(簡單合并)》,本文關(guān)鍵詞  分組,字符,合并,SQL,語句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《分組字符合并SQL語句 按某字段合并字符串之一(簡單合并)》相關(guān)的同類信息!
  • 本頁收集關(guān)于分組字符合并SQL語句 按某字段合并字符串之一(簡單合并)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    新邵县| 新化县| 金门县| 马边| 高唐县| 松桃| 正镶白旗| 新建县| 武夷山市| 宝应县| 青冈县| 图们市| 天镇县| 龙州县| 宣武区| 朔州市| 洞头县| 石嘴山市| 天祝| 渭源县| 泰来县| 鞍山市| 通渭县| 江北区| 宁强县| 宜兴市| 墨竹工卡县| 乾安县| 馆陶县| 米泉市| 福鼎市| 琼中| 乌拉特中旗| 苏尼特左旗| 湖南省| 灵武市| 井陉县| 汤阴县| 涟水县| 西宁市| 大田县|