当前位置:Gxlcms > 数据库问题 > MS SQL Server的STRING_SPLIT和STRING_AGG函数

MS SQL Server的STRING_SPLIT和STRING_AGG函数

时间:2021-07-01 10:21:17 帮助过:20人阅读

@str NVARCHAR(MAX) = NADS,ADFD,AGF,SDFGSFD,DSFG,RET,TRY,T,ADF,GSF,UY,QWERQ


把它转存为表:

技术图片

 

技术图片
DECLARE @dump_data AS TABLE([value] NVARCHAR(MAX))
INSERT INTO @dump_data ([value])  SELECT [value] FROM STRING_SPLIT(@str,,)
Source Code

 

反转,需要把临时表这列[value] 转换为一个字符串:

技术图片

 

技术图片
SELECT STRING_AGG([value], ,) 
FROM @dump_data
Source Code

 

其实STRING_AGG这函数,还可以对新串联的字符进行排序:

技术图片

 

技术图片
SELECT STRING_AGG([value], ,) WITHIN GROUP (ORDER BY [value]) 
FROM @dump_data
Source Code

 

如果你不想创建临时表,把拆分的数据插入临时表,步骤繁复。可以使用派生表来进行:

技术图片

技术图片
SELECT STRING_AGG([value], ,) WITHIN GROUP (ORDER BY [value]) 
FROM (SELECT [value] FROM STRING_SPLIT(@str,,)) source 
Source Code

 

或者使用一般资料表运算式CTE (Common Table Expression)

技术图片

技术图片
;WITH dump_data AS
(
    SELECT [value] FROM STRING_SPLIT(@str,,)
)
SELECT STRING_AGG([value], ,) WITHIN GROUP (ORDER BY [value]) 
FROM dump_data;
Source Code

 

MS SQL Server的STRING_SPLIT和STRING_AGG函数

标签:display   from   lap   临时表   info   com   nvarchar   函数   hide   

人气教程排行