sqlserver 截取字符串中的汉字
Posted hoho_12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 截取字符串中的汉字相关的知识,希望对你有一定的参考价值。
需求:有类似以下字符串,'["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码的范围来截取汉字,根据‘’来进行替换拼接。
参考文章:
sqlserver 判断字符串中是否有中文 - cao919 - 博客园
以上是关于sqlserver 截取字符串中的汉字的主要内容,如果未能解决你的问题,请参考以下文章