jij*_*663 1 sql t-sql sql-server function
如何在 SQL Server 中使用函数将 int 列表转换为带逗号的字符串?
转换为:“68,74,58,64,67”
使用stuff()withselect ... for xml path ('')方法进行字符串连接。
create table t (ProductId int);
insert into t values (68) ,(74) ,(58) ,(64) ,(67);
select
ProductIds = stuff((
select ','+convert(varchar(10),ProductId)
from t
for xml path (''), type).value('.','nvarchar(max)')
,1,1,'')
Run Code Online (Sandbox Code Playgroud)
rextester 演示:http://rextester.com/RZQF31435
返回:
+----------------+
| ProductIds |
+----------------+
| 68,74,58,64,67 |
+----------------+
Run Code Online (Sandbox Code Playgroud)
编辑:在 SQL Server 2017+ 中,您可以使用string_agg(),并且根据 Jeffry Schwartz 的文章,性能似乎是相同的:Should I Replace My FOR XML PATH String Merges with String_agg?