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 , '
' ) from dbname

采用replace函数替换换行

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

select  replace(SourceString  , @string , '
' ) from dbname

采用replace替换回车+换行

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

select  replace(SourceString  , @string , '
' ) from dbname

 

你可能感兴趣的:(SQL,Server)