今天碰到一个问题,用字符串函数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