sqlserver資料庫 去除欄位中空格,換行符,回車符(使用replace語句)

園封記憶發表於2015-11-13

SQL中可以使用Replace函式來對某個欄位裡的某些字元進行替換操作,語法如下: 語法 REPLACE ( original-string, search-string, replace-string ) 引數 如果有某個引數為 NULL,此函式返回 NULL。 original-string     被搜尋的字串。可為任意長度。 search-string     要搜尋並被 replace-string 替換的字串。該字串的長度不應超過 255 個位元組。如果 search-string 是空字串,則按原樣返回原始字串。 replace-string     該字串用於替換 search-string。可為任意長度。如果 replacement-string 是空字串,則刪除出現的所有 search-string。 例子: UPDATE tableName SET recordName=REPLACE(recordName,'abc','ddd') 將表tableName中的recordName欄位中的 abc 替換為 ddd 這個函式有一點不足是不支援 text,ntext型別欄位的替換,可以通過下面的語句來實現: update tableName set recordName=replace(cast(recordName as varchar(8000)) ,'abc','ddd')

 

2、替換欄位中的換行符,回車符

1: 回車符

SELECT *, REPLACE(detail, CHAR(13) , '<br>') AS 顯示替換後的內容 FROM loginfo

 

2:換行符

SELECT *, REPLACE(detail, CHAR(10), '<br>') AS 顯示替換後的內容 FROM loginfo

 

3:回車換行符

SELECT *, REPLACE(detail, CHAR(13) + CHAR(10), '<br>') AS 顯示替換後的內容 FROM loginfo

 

4:將回車換行符替換成<BR><BR>

UPDATE loginfo SET detail = REPLACE(detail, CHAR(13) + CHAR(10), '<br><br>')

注 在 dos \win 系列會出現 回車+換行符 CHAR(13)+CHAR(10)

在 unix \ linux 是換行符

轉換隻要把回車符char(13) 去掉就行了

以下sql語句

UPDATE loginfo SET detail = REPLACE(detail, CHAR(13) , '')

 

替換 正則 內容

update User_Content set [Address]=substring([Address],1,patindex('%<%',[Address])-2) where patindex('%<%',[Address])>2

相關文章