SQL Server如何將多行合并成字符串
在SQL Server中,經(jīng)常需要將多行的內(nèi)容處理成一行。下面小編給大家演示一下如何做。 準(zhǔn)備要處理的數(shù)據(jù) 首先,我們需要準(zhǔn)備要處理的數(shù)據(jù)。假設(shè)我們要將具有相同KHID的DDH合并起來(lái)。數(shù)據(jù)如下圖
在SQL Server中,經(jīng)常需要將多行的內(nèi)容處理成一行。下面小編給大家演示一下如何做。
準(zhǔn)備要處理的數(shù)據(jù)
首先,我們需要準(zhǔn)備要處理的數(shù)據(jù)。假設(shè)我們要將具有相同KHID的DDH合并起來(lái)。數(shù)據(jù)如下圖所示:
``` KHID | DDH ------------------ 001 | 1111 001 | 2222 002 | 3333 002 | 4444 ```調(diào)用String_agg函數(shù)
接下來(lái),我們可以使用SQL Server提供的String_agg函數(shù)來(lái)實(shí)現(xiàn)將多行合并成字符串的功能。調(diào)用String_agg函數(shù)的語(yǔ)法如下:
``` SELECT KHID, STRING_AGG(DDH, ', ') AS MergedDDH FROM YourTable GROUP BY KHID ``` 其中,YourTable是你的數(shù)據(jù)表名。查看結(jié)果
執(zhí)行上述代碼后,你會(huì)發(fā)現(xiàn)具有相同KHID的DDH都被合并成了一個(gè)字符串,結(jié)果如下圖所示:
``` KHID | MergedDDH --------------------- 001 | 1111, 2222 002 | 3333, 4444 ```注意事項(xiàng)
在進(jìn)行多行合并時(shí),有幾點(diǎn)需要注意:
- 如果合并的內(nèi)容過(guò)多,可能會(huì)導(dǎo)致報(bào)錯(cuò)。請(qǐng)確保合并的字符串不超過(guò)SQL Server的限制。
 - String_agg函數(shù)僅在SQL Server版本號(hào)17以上才可用。如果你使用的是17版本以下的SQL Server,可能會(huì)報(bào)“不是內(nèi)置函數(shù)”的錯(cuò)誤。
 
希望這篇文章對(duì)你理解SQL Server中多行合并成字符串的方法有所幫助!