需求:有类似以下字符串,'[{"name":"张三","id":"7217599451873"},{"name":"李四","id":"72175943232"}'
经过处理之后,返回以下格式类容: 张三,李四
即返回字符串中的汉字内容,并且以逗号隔开。
分析:截取字符串中的汉字,并进行拼接,可编写类似以下函数:
CREATE function getNames(@s varchar(500))
returns varchar(200)
as
begin
DECLARE
@temp VARCHAR ( MAX ) = ''
if len(@s) = 0 or @s is null
return '无'
SELECT
@temp = @temp + SUBSTRING ( ch, sv.number, 1 )
FROM
( SELECT @s AS ch ) t CROSS APPLY [master].dbo.spt_values AS sv
WHERE
sv.type = 'P'
AND sv.number BETWEEN 1
AND LEN( ch )
AND (UNICODE( SUBSTRING ( ch, sv.number, 1 ) ) BETWEEN 19968
AND 40869 or UNICODE ( SUBSTRING ( ch, sv.number, 1 ) ) = 125)
set @temp = replace( @temp ,'}',',')
set @temp = substring(@temp,1,len(@temp)-1)
return @temp
end
根据汉字的unicode码的范围来截取汉字,根据‘}’来进行替换拼接。
参考文章: