空格包含一般空格和特殊空格。
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