- 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'[序數(shù)表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
- drop table [序數(shù)表]
- GO
- --為了效率,所以要一個輔助表配合
- select top 1000 id=identity(int,1,1) into 序數(shù)表
- from syscolumns a,syscolumns b
- alter table 序數(shù)表 add constraint pk_id_序數(shù)表 primary key(id)
- go
- /*--根據(jù)指定字符串生成查詢的模糊匹配字符串
- 條件連接的關(guān)鍵字為 and,or
- 可以任意指定括號
- 生成的條件表達(dá)式為 like 模糊匹配
- --鄒建 2004.08(引用請保留此信息)--*/
- /*--調(diào)用示例
- --調(diào)用示例
- 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')
- --*/
- --示例函數(shù)
- 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 序數(shù)表
- where id<=len(@str)
- and charindex(' ',' '+@str,id)-id=0
- return(@r)
- end
- go
sql中生成查詢的模糊匹配字符串
2019-10-26 18:44mssql教程網(wǎng) Sql Server
sql中生成查詢的模糊匹配字符串
延伸 · 閱讀
- 2022-03-11C語言實(shí)現(xiàn)將double/float 轉(zhuǎn)為字符串(帶自定義精度
- 2022-03-11Python全棧之字符串和列表相關(guān)操作
- 2022-03-10疫情地圖在哪看?疫情地圖實(shí)時更新查詢教程
- 2022-03-09sql語句中union的用法與踩坑記錄
- 2022-03-09MySQL由淺入深掌握連接查詢
- 2022-03-09SQL利用游標(biāo)遍歷日期查詢的過程詳解
- Sql Server
SQLServer2005創(chuàng)建定時作業(yè)任務(wù)
這篇文章主要為大家介紹了SQLServer2005創(chuàng)建定時作業(yè)任務(wù)的詳細(xì)過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下 ...
- Sql Server
三種SQL分頁查詢的存儲過程代碼
三種SQL分頁查詢的存儲過程代碼,需要的朋友可以參考下。 ...
- Sql Server
SQL_Server全文索引的用法解析
SQL Server全文索引相信大家都有一定的了解,下面就為您介紹SQL Server全文索引的用法及相關(guān)的語句,希望可以讓您對SQL Server全文索引能有更深的認(rèn)識 ...
- Sql Server
SQLServer2005 批量查詢自定義對象腳本
SQLServer2005 批量查詢自定義對象腳本,使用系統(tǒng)函數(shù)object_definition和系統(tǒng)表 sysobjects 就可以了 ...
- Sql Server
SQL2005 存儲過程解密方法
SQL2005 存儲過程解密方法,需要的朋友可以參考下。...
- Sql Server
深入SQLServer中ISNULL與NULLIF的使用詳解
本篇文章是對SQLServer中ISNULL與NULLIF的使用進(jìn)行了詳細(xì)分析介紹,需要的朋友參考下 ...
- Sql Server
SQLServer 數(shù)據(jù)庫的數(shù)據(jù)匯總完全解析(WITH ROLLUP)
乍一看,好像很容易,用group by好像能實(shí)現(xiàn)?但仔細(xì)研究下去,你又會覺得group by也是無能為力,總欠缺點(diǎn)什么,無從下手。那么,到底該如何做呢?別急,...
- Sql Server
SQL JOIN 連接詳細(xì)介紹及簡單使用實(shí)例
這篇文章主要介紹了SQL JOIN 連接詳細(xì)介紹及簡單使用實(shí)例的相關(guān)資料,需要的朋友可以參考下 ...