读书人

急轮换列内容

发布时间: 2012-06-22 16:16:32 作者: rapoo

急-替换列内容
有一列存的是html代码,这些html代码中有图片标识 <img src="" />,我怎么把这些标识都找出来并替换成''
?
也就是我想把页面中的图片去掉.
开始标识是<img
结束标识是/>

[解决办法]

SQL code
declare @sql varchar(8000)set @sql='<html>测试<img src="图片1" />字符串<img src="图片2" />替换<img src="图片1" /></html>'while charindex('<img src="',@sql)<>0begin    set @sql=replace(@sql,substring(@sql,charindex('<img src="',@sql),charindex('/>',@sql,charindex('<img src="',@sql))-charindex('<img src="',@sql)+2),'')endselect @sql/*<html>测试字符串替换</html>*/
[解决办法]
仅供参考:
SQL code
DECLARE @str VARCHAR(2000)='<html><img src="" /></html>'SELECT SUBSTRING(@str,0,CHARINDEX('<img',@str))+RIGHT(@str,LEN(@str)-CHARINDEX('/>',@str)-1)--------------------(无列名)<html></html>
[解决办法]
楼主不好意思 上面注释不对,应该是以下
SQL code
declare @va varchar(max)set @va='dsfdsfdsf<img src="dsfsdfsadfasfafdasffdsd<imagdsfdsf" />ds/>fdsfdsdsfdsfdsf<img src="dsfsfffdfsadfasfafdasfdsfdsf" />ds/>fdsfds';while(CHARINDEX('<img src="',@va,1)>1) --循环处理字符串beginset @va=replace(@va, ---将位置A之后B个的字符的字符串替换成''            SUBSTRING(@va, --获取位置 A之后B个的字符的字符串                CHARINDEX('<img src="',@va,1),--获取<img src="的位置 A                --以下的获取'/>'在<img src=" 之后第一次出现'/>'的位置,然后取得这两个位置之间的字符长度,+2 是为了补齐'/>'这两字符的位置                CHARINDEX('/>',@va,CHARINDEX('<img src="',@va,1))-CHARINDEX('<img src="',@va,1)+2)                ,'')endselect @va 

读书人网 >SQL Server

热点推荐