本文主要給大家簡單講講使用sqlserver模仿mysql函數FIND_IN_SET實現group_concat功能,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望使用sqlserver模仿mysql函數FIND_IN_SET實現group_concat功能這篇文章可以給大家帶來一些實際幫助。
一、判斷某個逗號隔開的字段中有某個值
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 idSELECT 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--刪除、創建臨時表
drop table #table1;
select * into #table1
from (
SELECT myId,'auto' as type
)allData
--把數據按myId分類鏈接,然后按鏈接后數據的長度倒序排序
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函數FIND_IN_SET實現group_concat功能就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。