1. 程式人生 > >SQL:查詢、替換字串中的回車、換行、回車換行

SQL:查詢、替換字串中的回車、換行、回車換行

今天碰到一個問題,用字串函式SUBSTRING擷取字串,給定的字串資料中包含回車、換行、回車換行,導致擷取失敗。將字串資料中的回車、換行、回車+換行處理之後就可以成功截取了。

1、判斷字串中是否包含回車、換行、回車+換行

回車可以用char((13)標識,如果返回值不等於0 ,說明字串資料中包含回車

declare @string nvarchar(255) = char(13)

select   CHARINDEX(@string,SourceString)
from     dbname

換行可以用char(10)替換,如果返回值不等於0,說明字串中包含換行。

declare @string nvarchar(255) = char(10)

select   CHARINDEX(@string,SourceString)
from     dbname

回車+換行可以標識為char(13) + char(10), 如果返回值不等於0 ,說明字串中包含回車+換行

declare @string nvarchar(255) = char(13) +char(10)

select   CHARINDEX(@string,SourceString)
from     dbname

2、替換字串中的回車、換行、回車+換行

採用replace函式替換回車

declare @string nvarchar(255) = char(13)

select  replace(SourceString  , @string , '<br>'  )
from     dbname

採用replace函式替換換行

declare @string nvarchar(255) = char(10)

select  replace(SourceString  , @string , '<br>'  )
from     dbname

採用replace替換回車+換行

declare @string nvarchar(255) = char(13) + char(10)

select  replace(SourceString  , @string , '<br>'  )
from     dbname