sql中合併多行記錄的方法總匯:
--1. 建立表pugjz,新增測試資料
create table tb(id int, [value] varchar(10))
insert tb select 1, 'aa'
union all select 1, 'bb'
union all select 2, 'aaa'
union all select 2, 'bbb'
union all select 2, 'ccc'
--select * from tb
/**//*
id value
----------- ----------
1 aa
1 bb
2 aaa
2 bbb
2 ccc
(5 row(s) affected)
*/ --2 在sql2000只能用自定義函式實現
----2.1 建立合併函式fn_strsum,根據id合併value值
go create function dbo.fn_strsum(@id int)
returns varchar(8000)
as begin
declare @values varchar(8000)
set @values = ''
select @values = @values + ',' + value from tb wh id=@id
return stuff(@values, 1, 1, '')
end
go -- 呼叫函式
select id, value = dbo.fn_strsum(id) from tb group by id
drop function dbo.fn_strsu
----2.2 建立合併函式fn_strsum2,根據id合併value值
go create function dbo.fn_strsum2(@id int)
returns varchar(8000)
as begin
declare @values varchar(8000)
select @values = isnull(@values + ',', '') + value from tb where id=@id
return @values
end
go -- 呼叫函式
select id, value = d程式設計客棧bo.fn_strsum2(id) from tb group by id
drop function dbo.fn_strsum2
--3 在sql2005/sql2008中的新解法
----3.1 使用outer apply
select *
from (select distinct id from tb) a outer apply(
select [values]= stuff(replace(replace(
( select value from tb n
where id = a.id
for xml auto
), '', ''), 1, 1, '')
)n ----3.2 使用xml
select id, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), 1, 1, '')
from tb
group by id
--4 刪除測試表tb
drop table tb
/**//*
id values
----------- --------------------
1 aa,www.cppcns.combb
2 aaa,bbb,ccc
(2 row(s) affected)
*/
本文標題: sql 合併多行記錄的方法總匯
本文位址:
SQL 資料表給定欄位的多行記錄的合併
最近的報表中有個需求,使用者需要看到屬於某個客戶的order的所有的items,這些屬於某個order的items需要歸併為乙個字段記錄。首先是對兩個表的描述,乙個是orderhead,乙個是orderdetails,乙個客戶 debtor 有多個order,乙個order有乙個或多個item。or...
sql多行轉為一列的合併
一 資料庫sql server列值鏈式合併 需求 原始表的資料的結構如圖1所示,把相同guid的code值生成乙個鏈式字串。圖1 目標 我們希望達到的效果如圖2所示,這裡的guid變成唯一的了,這行的記錄中包含了這個guid所對應的code字段值的鏈式字串。圖2 分析與實現 要實現圖1到圖2的轉變,...
sql多行轉為一列的合併問題
描述 將如下形式的資料按id欄位合併value欄位。id value 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到結果 id value 1 aa,bb 2 aaa,bbb,ccc 即 group by id,求 value 的和 字串相加 1 sql2000中只能用自定義的函式...