求sql语句:去掉不可见字符

Edison621 2005-10-21 09:29:29
字符串中除了字母(大小写),数字,和'以及空格,其他的都替换成''
sql语句怎么写?
...全文
279 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vivianfdlpw 2005-10-21
  • 打赏
  • 举报
回复
create function f_replace(@str varchar(8000))
returns varchar(8000)
as
begin
while patindex('%[^a-zA-Z^0-9^ ^'']%',@str)>0
begin
set @str=stuff(@str,patindex('%[^a-zA-Z^0-9^ ^'']%',@str),1,'')
end

return @str
end
go

--调用
select dbo.f_replace('2dg6<;L,?')

/*
2dg6L

(所影响的行数为 1 行)
*/
xiaodong_1567 2005-10-21
  • 打赏
  • 举报
回复
学习一下
Edison621 2005-10-21
  • 打赏
  • 举报
回复
运行以后,发现还是有末尾ASCII码为63的去除不了,怎么回事?
vivianfdlpw 2005-10-21
  • 打赏
  • 举报
回复
create function f_replace(@str varchar(8000))
returns varchar(8000)
as
begin
while patindex('%[^a-zA-Z^0-9^ ^'']%',@str)>0
begin
set @str=stuff(@str,patindex('%[^a-zA-Z^0-9^ ^'']%',@str),1,'')
end

return @str
end
go

--调用
select dbo.f_replace('2dg6<;L,')

/*
2dg6L

(所影响的行数为 1 行)
*/
Edison621 2005-10-21
  • 打赏
  • 举报
回复
怎么用啊?谢谢
churchatp1 2005-10-21
  • 打赏
  • 举报
回复
假设你的字符串为@s
while patindex('%[^'^0-9,^a-z,^A-Z,^ ]%',@s)>0
stuff(@s,patindex('%[^'^0-9,^a-z,^A-Z,^ ]%',@s),1,'')
churchatp1 2005-10-21
  • 打赏
  • 举报
回复

declare @s varchar(8000),@s1 varchar(8000)
set @s=' 0(az*Jah.adf8UU'

while patindex('%[^''^0-9,^a-z,^A-Z,^ ]%',@s)>0
set @s=stuff(@s,patindex('%[^''^0-9,^a-z,^A-Z,^ ]%',@s),1,'')

select @s

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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