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

sfwxw0456 2013-08-25 05:33:51
我想把字符串中里的中文替换成"-"字符,请问如何实现哦;
求救~
...全文
641 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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#中实现可以用正则表达式

27,582

社区成员

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

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