我知道如何在包含循环和if语句的代码中执行此操作,但我不知道如何在tsql中执行此操作。
注意,当我说CR和LF时我的意思是char(13)和char(10)
基本上我想用CR找到所有内容并用CRLF替换它。 但是,它稍微复杂一点,因为如果我曾经打过一个CRLF,我不希望结果是CRCRLF。 我想替换列中的所有实例,而不仅仅是第一次出现的实例。任何关于tsql这样做的想法都会很棒。
一个可怕的黑客攻击是用CRLF替换任何CR并导致一些CRCRLF,然后运行第二次更新以用CRLF替换任何CRCRLF,但这不是最佳方式吗?
答案 0 :(得分:1)
好吧,一种方法是用CR替换CRLF的当前实例,然后进行替换:
with chars as (
select char(10) as lf, char(13) as cr
)
update t
set col = replace(replace(col, cr + lf, cr), cr, cr + lf)
from t cross join
chars;