T SQL 將一列多行資料合併為一行

2022-02-06 10:31:07 字數 1309 閱讀 6651

sql server 在進行資料遷移和報表處理的時候遇到將一列多行資料拼接為乙個字串的情形,查詢相關的資料整理如下,提供兩種方法。

table:sc

student

course

張三大學語文

李四大學語文

張三書法鑑賞

張三**欣賞

李四電影賞析

期望得到的結果:

student

course

張三大學語文,書法鑑賞,**欣賞

李四大學語文,電影賞析

一、使用者自定義函式

create

function fn_merge (@student

nvarchar(50

))returns

nvarchar(50)as

begin

declare

@course

nvarchar(50

)

select

@course

=isnull(@course+'

,','') +

@course

from

sc

where student =

@student

return

@course

endselect

distinct

[student

],dbo.fn_merge([

student

]) as

course

from

[dbo

].[sc

]

結果:(2 row(s) affected)

二、使用for xml path

select

distinct

[student],

stuff

( (

select',

'+[course

]from

[dbo

].[sc

]where student =

a.student

for xml path(''

) )

,1,1,'')as

course

from

[dbo

].[sc

]as a

結果:(2 row(s) affected)

T SQL 將一列多行資料合併為一行

sql server在進行資料遷移 和報表處理的時候會遇到將一列多行資料拼接為乙個字串的情況,為了處理這個問題,在網上找了一些相關的資料,提供兩種方法,供遇到類似問題的朋友們參考,也藉此加深自己的印象。table sc student course 張三大學語文 李四大學語文 張三書法鑑賞 張三 欣...

T SQL 將一列多行資料合併為一行

sql server在進行資料遷移和報表處理的時候會遇到將一列多行資料拼接為乙個字串的情況,為了處理這個問題,在網上找了一些相關的資料,提供兩種方法,供遇到類似問題的朋友們參考,也藉此加深自己的印象。table sc student course 張三大學語文 李四大學語文 張三書法鑑賞 張三 欣賞...

orcale 多行多列合併為多行一列

使用concat ch1,ch2 函式,但是這個只適用於有兩個引數的。而我的是多張表,不能使用。select concat ch1,ch2 from t sql語句 這樣的效果還是不能達到我們想要的效果,然後我們使用as 將標紅的字段別名更改為我們需要的。select buc.company nam...