日期:2014-05-17 浏览次数:20566 次
表:class 字段: id qy 1 广州双一乳胶 2 湖南金博科技有限责任公司
CREATE TABLE atest(id INT, qy varchar(100)) INSERT atest select 1 ,'广州双一乳胶' UNION ALL SELECT 2 ,'湖南金博科技有限责任公司' GO CREATE FUNCTION GetSS(@p varchar(100),@q varchar(100)) RETURNS BIT AS BEGIN DECLARE @min varchar(100),@max varchar(100) DECLARE @I INT,@Step INT DECLARE @r BIT SET @r=0 SELECT @I=1,@Step=0 IF len(@p)<len(@q) SELECT @max=@q,@min=@p ELSE SELECT @max=@p,@min=@q WHILE @I<=len(@min) BEGIN IF charindex(substring(@min,@I,1),@max)>0 SET @Step=@Step+1 SET @I=@I+1 END IF @Step<>0 AND @Step>=len(@min)/2 SET @r=1 RETURN @r END GO DECLARE @a varchar(100) SET @a='湖南科技' SELECT * FROM atest WHERE dbo.getss(@a,qy)=1 SET @a='广州广橡集团有限公司双一乳胶厂' SELECT * FROM atest WHERE dbo.getss(@a,qy)=1 --result /*id qy ----------- ------------------------------ 2 湖南金博科技有限责任公司 (所影响的行数为 1 行) id qy ----------- ------------------------------ 1 广州双一乳胶 (所影响的行数为 1 行) */
------解决方案--------------------
IF @Step<>0 AND @Step>=len(@min)/2 SET @r=1 RETURN @r