当不在某个其他角色旁边时,将一个角色替换为另一个角色

时间:2016-07-14 21:52:30

标签: sql sql-server tsql ssms

我知道如何在包含循环和if语句的代码中执行此操作,但我不知道如何在tsql中执行此操作。

注意,当我说CR和LF时我的意思是char(13)和char(10)

基本上我想用CR找到所有内容并用CRLF替换它。 但是,它稍微复杂一点,因为如果我曾经打过一个CRLF,我不希望结果是CRCRLF。 我想替换列中的所有实例,而不仅仅是第一次出现的实例。任何关于tsql这样做的想法都会很棒。

一个可怕的黑客攻击是用CRLF替换任何CR并导致一些CRCRLF,然后运行第二次更新以用CRLF替换任何CRCRLF,但这不是最佳方式吗?

1 个答案:

答案 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;
相关问题