1. <wbr id="m8vu6"></wbr>

      <del id="m8vu6"><center id="m8vu6"><source id="m8vu6"></source></center></del>
        <p id="m8vu6"><sub id="m8vu6"></sub></p>

        VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 數據庫 > sql語句 >
        • sql語句大全之sql中生成查詢的模糊匹配字符串

        • 2017-06-21 11:30 來源:未知
        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 
        相關教程
        免费看成年人视频大全_免费看成年人视频在线观看