- 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
针对Sqlserver大数据量插入速度慢或丢失数据的解决方法
这篇文章主要介绍了针对Sqlserver大数据量插入速度慢或丢失数据的解决方法,很有实用价值,需要的朋友可以参考下 ...
- Sql Server
sql的临时表使用小结
这篇文章主要介绍了sql的临时表使用小结,需要的朋友可以参考下 ...
- Sql Server
SQL查询的底层运行原理深入分析
这篇文章主要给大家介绍了关于SQL查询的底层运行原理,文中通过实例代码结束的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友...
- Sql Server
SqlServer将查询结果转换为XML和JSON
这篇文章主要介绍了SqlServer将查询结果转换为XML和JSON的相关资料,需要的朋友可以参考下 ...
- Sql Server
SQL server 随机数函数
在SQL server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要...
- Sql Server
SQL server 2008 数据安全(备份和恢复数据库)
备份和恢复数据库对于数据库管理员来说是保证数据安全性的一项重要工作。SQL server 2008提供了高性能的备份和恢复功能,可以实现多种方式的数据库备份...
- Sql Server
SQL查询入门(上篇) 推荐收藏
SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。 ...
- Sql Server
SQLServer 数据库故障修复顶级技巧之一
SQL Server 2005 和 2008 有几个关于高可用性的选项,如日志传输、副本和数据库镜像。 ...