千家信息网

使用sqlserver模仿mysql函数FIND_IN_SET实现group_concat功能

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本文主要给大家简单讲讲使用sqlserver模仿mysql函数FIND_IN_SET实现group_concat功能,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔
千家信息网最后更新 2025年01月21日使用sqlserver模仿mysql函数FIND_IN_SET实现group_concat功能

本文主要给大家简单讲讲使用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 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
--删除、创建临时表drop table #table1;select * into #table1from (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功能就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

0