sqlserver 截取字符串中的汉字

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 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

image.gif

根据汉字的unicode码的范围来截取汉字,根据‘}’来进行替换拼接。

参考文章:

sqlserver 判断字符串中是否有中文 - cao919 - 博客园


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
3月前
|
SQL XML JSON
在 SQL Server 中使用字符串转义
【8月更文挑战第5天】
151 7
在 SQL Server 中使用字符串转义
|
3月前
|
SQL 数据采集 存储
"揭秘SQL Server中REPLACE函数的神奇力量!一键替换字符串,解锁数据处理的无限可能,你还在等什么?"
【8月更文挑战第20天】SQL Server 的 REPLACE 函数是处理字符串的强大工具,用于在查询中替换字符串的部分内容。基本语法为 `REPLACE(string_expression, string_pattern, string_replacement)`。例如,可将员工邮箱从 `@example.com` 替换为 `@newdomain.com`。支持多级嵌套替换与变量结合使用,适用于动态生成查询。注意大小写敏感性及全局替换特性。掌握 REPLACE 函数能有效提升数据处理能力。
127 0
|
6月前
|
XML 数据格式
【sqlserver】带分隔符字符串和多行互相转化
【sqlserver】带分隔符字符串和多行互相转化
121 0
|
SQL
sql server从某个字符开始截取后面的字符串
sql server从某个字符开始截取后面的字符串
169 0
|
SQL
SQLSERVER中分割字符串成多列
SQLSERVER中分割字符串成多列
129 0
|
SQL 数据库 数据安全/隐私保护
VS2017调用SQL server 2019 和C++连接语句字符串
VS2017调用SQL server 2019 和C++连接语句字符串
VS2017调用SQL server 2019 和C++连接语句字符串
|
SQL Oracle 关系型数据库
|
SQL 机器学习/深度学习 Go
SQL Server如何用SQL实现一批字符串的全部组合
原文:SQL Server如何用SQL实现一批字符串的全部组合 在SQL Server中,如何用SQL去实现得到一批字符串的全部组合呢?这个是同事在实际需求当中遇到的一个问题,他的具体需求如下所示:   传入参数格式为'1,2,3,224,15,6'   'A,BC,GHT,TTY,B,E' ...
1069 0
|
2月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
97 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例