今天給大家介紹一下SQL Server怎么合并組內(nèi)字符串。文章的內(nèi)容小編覺得不錯,現(xiàn)在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的合作網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
SELECT p2.G,
SS = JSON_VALUE(
REPLACE(
(SELECT _ = p1.S FROM T p1 WHERE p1.G = p2.G FOR JSON PATH)
,'"},{"_":"',', '),'$[0]._'
)
FROM T p2
SQL Server 2014需要3層嵌套來合并組內(nèi)字符串,還得借助XML,代碼看起來非常復(fù)雜:
SELECT Main.G, LEFT(Main.SS,Len(Main.SS)-1) As "SS" FROM ( SELECT DISTINCT p2.G, ( SELECT p1.S + ',' AS [text()] FROM T p1 WHERE p1.G = p2.G ORDER BY p1.G FOR XML PATH ('') )[SS] FROM T p2 )[Main] |
其他版本的SQL Server寫法雖然各有不同,但通常也很復(fù)雜。
當(dāng)數(shù)據(jù)庫沒有類似group_concat這樣的函數(shù)時,可以用esProc協(xié)助實(shí)現(xiàn),代碼會簡單很多。同樣針對2014版SQL Server,esProc可以這樣合并組內(nèi)字符串:
A | B | |
1 | =db.query("select G, S from T") | /query from SQL Server 2014 |
2 | =A1.group(G; ~.(S).concat(",")) | /用逗號合并多行 |
這樣就可以實(shí)現(xiàn)類似group_concat的功能了,而且任何數(shù)據(jù)庫上都可以用。
esProc是個腳本語言,可以在IDE里反復(fù)執(zhí)行,還可以用命令行方式調(diào)用,適合簡化SQL中的難題。
以上就是SQL Server怎么合并組內(nèi)字符串的全部內(nèi)容了,更多與SQL Server怎么合并組內(nèi)字符串相關(guān)的內(nèi)容可以搜索創(chuàng)新互聯(lián)之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會給大家增添更多知識,希望大家能夠支持一下創(chuàng)新互聯(lián)!