空格包含一般空格和特殊空格。
1、一般空格
前后的空格,使用LTRIM()和RTRIM()即可,例如:LTRIM(RTRIM(name))
中间的空格,使用REPLACE()函数替换,例如:REPLACE(name,' ','')
2、特殊空格
通过ASCII()函数,找出空格的ASCII值,然后用REPLACE()函数+CHAR()函数来替换。
①通过查询的方式,将特殊空格之外的值替换成空字符串,这样就剩下特殊空格,通过ASCII()函数查到特殊空格的ASCII值。
例:select ASCII(REPLACE(name,' ','')) from 表名
②将该值替换成空字符串,例如通过ASCII()函数,找到空格的ASCII值为10,则使用REPLACE(name,char(10),'')来替换。
注意:ASCII值根据实际情况查询获得。
例:update 表名 set name=REPLACE(name,CHAR(10),'')
————————————————
------------------------自己整理-------------------
查询字段是否包含特殊字符
SELECT YourColumn FROM YourTable WHERE PATINDEX('%' + CHAR(0) + '%', YourColumn) > 0
---
select COUNT(1) from PosData.dbo.UserCoupon
where 1=1
and PATINDEX('%' + CHAR(0) + '%', Pos_number) > 0
--替换特殊字符---
update PosData.dbo.UserCoupon set Pos_number = REPLACE(Pos_number, CHAR(0), '')
where 1=1
and Rule_number = 'QB1WOEXFZL3XE'
---查找有什么特殊字符---
select ASCII(SUBSTRING(Pos_number,7,10)) from PosData.dbo.UserCoupon where Status=3 and Rule_number = '111'
---查询替换试试--
select REPLACE(Pos_number, CHAR(0), '') from PosData.dbo.UserCoupon where Status=3 and Rule_number = '111'
-----------------------spark替换特殊字符---------------------------
SELECT regexp_replace('asdfadfa', '\\x00', '') AS aa