- 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
sql中生成查询的模糊匹配字符串
2019-10-26 18:44mssql教程网 Sql Server
sql中生成查询的模糊匹配字符串
延伸 · 阅读
- 2022-03-11C语言实现将double/float 转为字符串(带自定义精度
- 2022-03-11Python全栈之字符串和列表相关操作
- 2022-03-10疫情地图在哪看?疫情地图实时更新查询教程
- 2022-03-09sql语句中union的用法与踩坑记录
- 2022-03-09MySQL由浅入深掌握连接查询
- 2022-03-09SQL利用游标遍历日期查询的过程详解
- Sql Server
SQLServer2005创建定时作业任务
这篇文章主要为大家介绍了SQLServer2005创建定时作业任务的详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...
- Sql Server
三种SQL分页查询的存储过程代码
三种SQL分页查询的存储过程代码,需要的朋友可以参考下。 ...
- Sql Server
SQL_Server全文索引的用法解析
SQL Server全文索引相信大家都有一定的了解,下面就为您介绍SQL Server全文索引的用法及相关的语句,希望可以让您对SQL Server全文索引能有更深的认识 ...
- Sql Server
SQLServer2005 批量查询自定义对象脚本
SQLServer2005 批量查询自定义对象脚本,使用系统函数object_definition和系统表 sysobjects 就可以了 ...
- Sql Server
SQL2005 存储过程解密方法
SQL2005 存储过程解密方法,需要的朋友可以参考下。...
- Sql Server
深入SQLServer中ISNULL与NULLIF的使用详解
本篇文章是对SQLServer中ISNULL与NULLIF的使用进行了详细分析介绍,需要的朋友参考下 ...
- Sql Server
SQLServer 数据库的数据汇总完全解析(WITH ROLLUP)
乍一看,好像很容易,用group by好像能实现?但仔细研究下去,你又会觉得group by也是无能为力,总欠缺点什么,无从下手。那么,到底该如何做呢?别急,...
- Sql Server
SQL JOIN 连接详细介绍及简单使用实例
这篇文章主要介绍了SQL JOIN 连接详细介绍及简单使用实例的相关资料,需要的朋友可以参考下 ...