如何获取以逗号分隔的列值
Posted
技术标签:
【中文标题】如何获取以逗号分隔的列值【英文标题】:How to get column values comma seperatedly 【发布时间】:2014-03-19 04:50:01 【问题描述】:如何在 SQL Server 中获取以逗号分隔的列值。下面显示的是我的 sql 查询#
select BandName from BandMaster where BandId<100
我需要在单个查询中以逗号分隔获取 BandName 值。
【问题讨论】:
How to make a list of T-SQL results with comma's between them? 的可能重复项 任何特定版本的 SQL Server? 也复制了:***.com/questions/12231439/… 【参考方案1】:Use XML path for this.
select (select BandName+',' from BandMaster where BandId<100 for xml path('')) as NewColumnName
Try this
【讨论】:
它将以 XML 格式返回,而不是以逗号分隔。 它将返回逗号分隔的本身。请尝试,然后评论 是的朋友,我试过了,然后评论了。它是像这样的试试这个
SELECT BandName =
STUFF ( ( SELECT ','+InrTab.BandName
FROM [Table1] InrTab
WHERE InrTab.BandId= OutTab.BandId
AND InrTab.BandId < 100
ORDER BY InrTab.BandId
FOR XML PATH(''),TYPE
).value('.','VARCHAR(MAX)')
, 1,1,SPACE(0))
FROM [Table1] OutTab
GROUP BY OutTab.BandId;
【讨论】:
【参考方案3】:请试试这个
SELECT GROUP_CONCAT(BandName) from BandMaster where BandId<100
.
【讨论】:
SQL SEREVR 中没有 GROUP_CONCAT【参考方案4】:Declare @retStr varchar(max) = ''
select @retStr = @retStr + BandName + ',' from BandMaster
where BandId<100
Select @retStr
【讨论】:
以上是关于如何获取以逗号分隔的列值的主要内容,如果未能解决你的问题,请参考以下文章
如何在laravel中使用逗号分隔值的列上使用'where'