溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQL Server怎么合并組內(nèi)字符串

發(fā)布時(shí)間:2022-01-15 15:58:32 來(lái)源:億速云 閱讀:254 作者:柒染 欄目:大數(shù)據(jù)

今天給大家介紹一下SQL Server怎么合并組內(nèi)字符串。文章的內(nèi)容小編覺(jué)得不錯(cuò),現(xiàn)在給大家分享一下,覺(jué)得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來(lái)閱讀吧。

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層嵌套來(lái)合并組內(nèi)字符串,還得借助XML,代碼看起來(lái)非常復(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ù)庫(kù)沒(méi)有類似group_concat這樣的函數(shù)時(shí),可以用esProc協(xié)助實(shí)現(xiàn),代碼會(huì)簡(jiǎn)單很多。同樣針對(duì)2014版SQL Server,esProc可以這樣合并組內(nèi)字符串:


AB
1=db.query("select G, S from T")/query from SQL Server 2014
2=A1.group(G; ~.(S).concat(","))/用逗號(hào)合并多行

這樣就可以實(shí)現(xiàn)類似group_concat的功能了,而且任何數(shù)據(jù)庫(kù)上都可以用。

esProc是個(gè)腳本語(yǔ)言,可以在IDE里反復(fù)執(zhí)行,還可以用命令行方式調(diào)用,適合簡(jiǎn)化SQL中的難題。

以上就是SQL Server怎么合并組內(nèi)字符串的全部?jī)?nèi)容了,更多與SQL Server怎么合并組內(nèi)字符串相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下億速云!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI