替换sql server字符串中的中文字符

sfwxw0456 2013-08-25 05:33:51
我想把字符串中里的中文替换成"-"字符,请问如何实现哦;
求救~
...全文
609 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy__Huang 2013-08-25
  • 打赏
  • 举报
回复

create function dbo.fn_num(@s nvarchar(100))
returns nvarchar(100)
as
begin
declare @s1 nvarchar(100),@i int
set @s1=''
set @i=1
while @i<=len(@s)
begin
set @s1=@s1+case when ascii(substring(@s,@i,1))>128 then '-' else substring(@s,@i,1) end
set @i=@i+1
end
return @s1

end


declare @s nvarchar(100)
set @s='asf命令已33435成功完成dfg56'
select dbo.fn_num(@s)

--drop function dbo.fn_num

结果:
/*
asf---33435----dfg56

*/
注明:汉字的ascii码值应该是大于128的,有点记不清?如果有误请纠正
lzw_0736 2013-08-25
  • 打赏
  • 举报
回复

declare @cstr varchar(max)
set @cstr='abc同12志34们56好efg啊'
;
with a1 as
(
select @cstr cstr,1 n
union all
select case when substring(cstr,n,1) like '[吖-座]' then stuff(cstr,n,1,'-') else cstr end,n+1
from a1
where n<=len(cstr)
)
select top 1 @cstr=cstr from a1 order by n desc Option(MAXRECURSION 0)
select @cstr
苍穹0113 2013-08-25
  • 打赏
  • 举报
回复
在数据库中还是在java或者C#中实现呢?如果是在java或者C#中实现可以用正则表达式
本课程根据讲师十多年在世界500强外企的生产环境SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧