SQL Server数据库中批量处理特殊字符

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

SQL Server数据库中批量处理特殊字符

1、确认特殊字符的ASCII码是多少

--例如下面字符串中分别在1、3、5位置存在特殊字符“问号”和“方框”,因为某些特殊字符是复制不出来的,例如这里的方框,所以首先使用substring函数,可以查到特殊字符的位置,然后再使用ASCII函数,获得特殊字符的ASCII码
select fid,test,substring(test,1,1) "1_loc",substring(test,3,1) "3_loc",substring(test,5,1) "5_loc",ASCII(substring(test,1,1)) "1_ASCII码",ASCII(substring(test,3,1)) "3_ASCII码",ASCII(substring(test,5,1)) "5_ASCII码"
from test  
where fid=1

图片.webp

2、批量查询出有此特殊字符的数据都有哪些

--使用char(ASCII码的值),可以将ASCII码转换为字符,利用这点,可以快速查询到异常的数据都有哪些
select * 
from test 
where charindex(char(63),test)>0 or charindex(char(1),test)>0

图片.webp

3、批量替换特殊字符为指定的值

--使用REPLACE函数批量替换掉特殊字符,例如此处,需要将问号替换成“-”,将最后面的方框直接删除

select REPLACE(test,char(63),'-'),*
--update a set test=REPLACE(test,char(63),'-')
from test a
where charindex(char(63),test)>0 


select REPLACE(test,char(1),''),*
--update a set test=REPLACE(test,char(1),'')
from test a
where charindex(char(1),test)>0

图片.webp

执行完update语句后再来查询,可以看到已经替换成了想要的结果,且注意这个是替换字符串中所有能匹配到的特殊字符,并不是只替换第一个匹配到的字符。

图片.webp

SQL Server数据库中批量处理特殊字符

1、确认特殊字符的ASCII码是多少--例如下面字符串中分别在1、3、5位置存在特殊字符“问号”和“方框”,因为某些特殊字符是复制不出来的,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息