溫馨提示×

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

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

使用sqlserver模仿mysql函數(shù)FIND_IN_SET實(shí)現(xiàn)group_concat功能

發(fā)布時(shí)間:2020-05-19 10:47:11 來源:網(wǎng)絡(luò) 閱讀:1561 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡單講講使用sqlserver模仿mysql函數(shù)FIND_IN_SET實(shí)現(xiàn)group_concat功能,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望使用sqlserver模仿mysql函數(shù)FIND_IN_SET實(shí)現(xiàn)group_concat功能這篇文章可以給大家?guī)硪恍?shí)際幫助。

一、判斷某個(gè)逗號(hào)隔開的字段中有某個(gè)值

FIND_IN_SET('a','a,b,c,d') 用 CHARINDEX(','+'b'+',' , ','+'a,b,c'+',') > 0 替代


二、模仿mysql的group_concat的示例

SELECT id,     
       val=( SELECT [value] +','     
               FROM tb AS b     
               WHERE b.id = a.id
               FOR XML PATH('')  )     
FROM tb AS a      
GROUP BY id
SELECT id,     
       [val]=STUFF( (SELECT ','+[value]     
                     FROM tb AS b     
                     WHERE b.id = a.id     
                     FOR XML PATH('')) , 1 , 1 , '' )    
FROM tb AS a      
GROUP BY id
--刪除、創(chuàng)建臨時(shí)表
drop table #table1;
select * into #table1
from (
SELECT myId,'auto' as type
)allData
--把數(shù)據(jù)按myId分類鏈接,然后按鏈接后數(shù)據(jù)的長度倒序排序
select * from (
  select myId,
  val=STUFF( (SELECT '、'+type     
                     FROM #table1 AS b     
                     WHERE b.myId = ta.myId     
                     FOR XML PATH('')) , 1 , 1 , '' )
  from #table1 ta
  group by myId
) dd order by LEN(val) desc

使用sqlserver模仿mysql函數(shù)FIND_IN_SET實(shí)現(xiàn)group_concat功能就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。

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

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

AI