首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问一个替换的sql语句

2013-06-25 
请教一个替换的sql语句请问我要将字符串中所有包含在内的字符全部替换掉要如何实现呢。比如:declare @s

请教一个替换的sql语句
请问我要将字符串中所有包含在'<>'内的字符全部替换掉要如何实现呢。
比如:
declare @sql varchar(1000)
set @sql= 'bbbbbb<asdfasd>aaa<bcd>aaa<asdfasd>dfasdf'
要得到的结果是:
bbbbbbaaaaaadfasdf

[解决办法]
能不能用循环读出第一个<%>,使用patindex(@sql,'<%')和patindex(@sql,'%>')
然后删掉,接着往下读,值到串读完。
[解决办法]


declare @sql varchar(1000)
 set @sql= 'bbbbbb<asdfasd>aaa<bcd>aaa<asdfasd>dfasdf'
 declare @val varchar(10),@wz int
 set @wz=CHARINDEX('<',@sql)
 while(@wz>0)
 begin
 set @val=SUBSTRING(@sql,CHARINDEX('<',@sql),charindex('>',@sql)-CHARINDEX('<',@sql)+1)
 set @sql=REPLACE(@sql,@val,'')
 set @wz=CHARINDEX('<',@sql)
 end
 print @sql
/*
bbbbbbaaaaaadfasdf
*/

[解决办法]

declare @sql varchar(1000)
DECLARE @i INT
SET @i=1;
set @sql= 'bbbbbb<asdfasd>aaa<bcd>aaa<asdfasd>dfasdf'
WHILE(@i>0)
BEGIN
DECLARE @ibegin INT;
DECLARE @iEnd INT;
SELECT @ibegin=CHARINDEX('<',@sql)
SELECT @iEnd=CHARINDEX('>',@sql)
IF(@ibegin>0 AND @iEnd>0)
BEGIN
SELECT @sql=REPLACE(@sql,SUBSTRING(@sql,@ibegin,@iEnd-@ibegin+1),'')
END
SET @i=CHARINDEX('<',@sql);
IF (@i<=0)
BEGIN
PRINT @sql
END
END


热点排行