行中包含多个售后,那么循环再处理.

来源:互联网 发布:windows安装snmp服务 编辑:程序博客网 时间:2024/04/30 21:33

 IF OBJECT_ID('tb') IS NOT NULL
   
DROP TABLE tb
GO

CREATE TABLE tb(id INT IDENTITY(1,1), v NTEXT)
GO
INSERT tb SELECT 'aa'
UNION ALL SELECT 'afsdf售后'
UNION ALL SELECT 'afsdf售后asdf'
GO

DECLARE @i INT,@m iNT,@pt BINARY(16),@po INT
SELECT @i=1,@m=0

WHILE @m IS NOT NULL
BEGIN
   
SELECT TOP 1 @m=id ,@pt=TEXTPTR(v),@po=PATINDEX('%售后%',v)-1 FROM tb WHERE patIndex('%售后%',v)>0 AND id>@m
   
IF @@rowcount = 0 SET @m=NULL
   
ELSE
   
UPDATETEXT tb.v @pt @po 2 ''
   
END
SELECT * FROM tb
GO