if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_Sql]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_Sql] GO if exists (select * from dbo.sysobjects where id = object_id(N'[서수 표]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [서수 표]GO-효율 을 위해 보조 표 에 select 를 맞 춰 야 합 니 다. top 1000 id=identity(int,1,1) into 서수 표 from syscolumns a,syscolumns b alter table 서수 표 add constraint pk_id_서수 표 primary key(id)go/*-지정 한 문자열 에 따라 검색 의 모호 한 일치 문자열 을 생 성 합 니 다. 조건 부 연결 의 키 워드 는? and,or 괄호 를 임의로 지정 할 수 있다 생 성 된 조건 식 은 like 모호 일치--추 건 2004.08(인용 은 이 정 보 를 보존 하 십시오)--*/*--호출 예시 --호출 예시 select A=dbo.f_Sql('(Web or HTML or Internet) and (Programmer or Developer)','content') select B=dbo.f_Sql('Web or HTML or Internet','content') select C=dbo.f_Sql('(Web and HTML)','content') select D=dbo.f_Sql('Web','content')--*/--예제 함수 create function f_Sql( @str Nvarchar(1000), --검색 할 문자열@fdname sysname --그 필드 에서 검색)returns Nvarchar(4000) as begin declare @r Nvarchar(4000) set @r='' select @r=@r+case when substring(@str,id,charindex(' ',@str+' ',id)-id) in('or','and') then ' '+substring(@str,id,charindex(' ',@str+' ',id)-id)+' ' when substring(@str,id,1)='(' then '(['+@fdname+'] like ''%' +substring(@str,id+1,charindex(' ',@str+' ',id)-id-1) +'%''' when substring(@str,charindex(' ',@str+' ',id)-1,1)=')' then '['+@fdname+'] like ''%' +substring(@str,id,charindex(' ',@str+' ',id)-id-1) +'%'')' else '['+@fdname+'] like ''%' +substring(@str,id,charindex(' ',@str+' ',id)-id) +'%''' end from 서수 표 where id<=len(@str) and charindex(' ',' '+@str,id)-id=0 return(@r) end go