另外在SQL语句中能不能用正则表达式呀?可用非特定字符判斷 patindex;常調用一個函數處理
字符不多用REPLACE

解决方案 »

  1.   

    貌似只能replace 搬凳子学习。SQL可以用正则比如 f like '<%>'
      

  2.   


    if object_id('t') is not null
       drop table t
    go
    create table t (ID int,F varchar(4000))
    insert t
    select 1,'sdfsdf3fsdf<fef>fease<html>' union all
    select 2,'<html>点击' union all
    select 3,'<p>sdfsdf3fsdf<fef>fease<html>' union all
    select 4,'<>sdf<凄>sdf3fsdf<fef>fease<>' union all
    select 5,'<html>' union all
    select 6,'中CHINA < PP >' 
    godeclare @lstar int
    declare @slen int
    declare @id int
    declare @nowtext varchar(4000)
    declare recor cursor for select id,f from t
    open recor
    fetch next from recor into @id,@nowtext
    while @@fetch_status=0
       begin
           set @lstar=charindex('<',@nowtext)
           set @slen=charindex('>',@nowtext,@lstar)-@lstar+1
           while @lstar<>0 and @slen>0
             begin            
                set @nowtext=replace(@nowtext,substring(@nowtext,@lstar,@slen),'')
                set @lstar=charindex('<',@nowtext)
                set @slen=charindex('>',@nowtext,@lstar)-@lstar+1
             end
           update t set f=@nowtext where id=@id
           fetch next from recor into @id,@nowtext
       end
    close recor
    deallocate recorGOselect * from t
    --结果
    /*
    ID            F
    -----------------------------
    1           sdfsdf3fsdffease
    2           点击
    3           sdfsdf3fsdffease
    4           sdfsdf3fsdffease
    5           
    6           中CHINA (所影响的行数为 6 行)
    */