MSSQL去除非文本字符的实现方法(mssql去除非文本字符)
概述
SQL,即结构化查询语言(StructuredQuery Language),但是它们没有能力去除文本中的特殊字符或元素,譬如空格,换行等。对此,MSSQL为用户提供了两个内置函数CHARINDEX() 和REPLACE(),通过它们可以很容易的实现去除非文本字符的效果。
使用CHARINDEX() 进行非文本字符搜索
CHARINDEX()是MSSQL中用以查找字符串中是否存在某个特定字符集,返回该字符集首次出现的位置,当返回值大于0时,表示字符串中存在特定字符集,如果返回值等于0,则表示字符串中不存在该字符集。例如,要在字符串中查找'[图片]’是否存在,可使用如下语句:
“`SQL
select CHARINDEX(‘[图片]’,YourString)
该语句将返回一个大于0的值,表明该字符串中存在'[图片]',也可根据需要查找其它字符,譬如空格('')诸如此类。
使用REPLACE() 进行字符串替换REPLACE()函数是MSSQL中用以替换字符串中的字符,此函数有3个参数,第一个表明要替换哪个字符,第二个参数表明替换成什么,第三个表明字符串来源。例如,要将一段文本中的空格替换成下划线,可使用如下语句:
```SQL select REPLACE(YourString,' ','_')
该语句将会将字符串中的空格替换成下划线。
实现去除非文本字符的方法
在实现去除文本中非文本字符时,我们可以使用CHARINDEX()和REPLACE()函数一起实现,如将字符串中的'[图片]’替换为空,可使用如下语句:
“`SQL
select REPLACE(YourString,SUBSTRING(YourString,CHARINDEX(‘[图片]’,YourString),7),”)
该函数会首先使用CHARINDEX()查找字符串中是否存在'[图片]',若存在,则使用REPLACE()函数将其替换成空。同理,也可将字符串中的其它字符替换成空,空格,换行等,只需将参数作相应的更改即可。
结论使用CHARINDEX()和REPLACE()函数可以轻松实现MSSQL去除文本中非文本字符的功能,除了上述提到的两个内置函数,MSSQL中还有其它多种函数可以使用,例如LEFT(),RIGHT(),LEN()等,只要花点时间了解每个函数的用途和用法,就可以实现很多创意的功能。