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

前端之家收集整理的这篇文章主要介绍了在SQL查询中执行正则表达式(替换)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是最好的方法来替换所有的& 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版本不可知,应该工作正常.

猜你在找的MsSQL相关文章