加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL查询中执行正则表达式(替换)

发布时间:2020-12-12 16:14:51 所属栏目:MsSql教程 来源:网络整理
导读:什么是最好的方法来替换所有的 lt lt在给定的数据库列?基本上执行s / lt [^;] / lt; / gi 笔记: 必须在 MS SQL Server 2000工作 必须是可重复的(而不是最终得到’;;;;;;;;) 解决方法 一些黑客需要,但我们可以用LIKE,PATINDEX,LEFT AND RIGHT和良好的旧字符
什么是最好的方法来替换所有的& lt<& lt<在给定的数据库列?基本上执行s /& lt [^;] /& lt; / gi 笔记:
>必须在 MS SQL Server 2000工作
>必须是可重复的(而不是最终得到&’;;;;;;;;)

解决方法

一些黑客需要,但我们可以用LIKE,PATINDEX,LEFT AND RIGHT和良好的旧字符串连接来做到这一点.
create table test
(
    id int identity(1,1) not null,val varchar(25) not null
)

insert into test values ('&lt; <- ok,&lt <- nok')

while 1 = 1
begin
    update test
        set val = left(val,patindex('%&lt[^;]%',val) - 1) +
                      '&lt;' +
                      right(val,len(val) - patindex('%&lt[^;]%',val) - 2)
    from test
    where val like '%&lt[^;]%'

    IF @@ROWCOUNT = 0 BREAK
end

select * from test

更好的是,这是SQL Server版本不可知,应该工作正常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读