sql server怎么在存储过程中模糊查询

首页 / 常见问题 / 低代码开发 / sql server怎么在存储过程中模糊查询
作者:低代码工具 发布时间:05-15 09:44 浏览量:2995
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

sql server在存储过程中实现模糊查询的方法:1、Wildcard操作符;2、between;3、in;4、全文搜索;5、使用存储过程。Wildcard操作符是SQL Server支持的最基本的模糊查询操作符,可以使用LIKE和=操作符实现模糊查询。

一、sql server在存储过程中实现模糊查询的方法

1、Wildcard操作符

Wildcard操作符:Wildcard是SQL Server支持的最基本的模糊查询操作符,可以使用LIKE和=操作符实现模糊查询。

使用LIKE操作符实现以“SMIT”为开头的姓名查询语句:

SELECT * FROM Customers WHERE LastName LIKE 'SMIT%'

使用=操作符实现精确匹配查询语句:

SELECT * FROM Customers WHERE LastName = 'Smith'

2、between

把某一字段的值在特定范围内的记录查询出来:

select * from ScoreList
where csharp between 80 and 90 
--在ScoreList数据库中查询csharp成绩在80~90之间的,列出全部列
select StudentName, StudentAdress from Students
where Birthday between '1972-7-7' and '2022-7-7' 
--在Students数据库中查询Birthday在1972-7-7到 2022-7-7之间的,列出全部列两项

3、in

把某一字段中内容与所列出的查询内容列表匹配的记录查询出来:

select StudentName, StudentAdress, Age from Students
where Age in (21,22,23) 
--在Students数据库中查询Age是21,22,23岁的,并列出StudentName和StudentAdress,Age 三项
select StudentName, StudentAdress from Students
where StudentAdress in ('Eric','Tom','Jack') 
--在Students数据库中查询StudentName是Eric,Tom,Jack,并列出StudentName和StudentAdress两项

4、全文搜索

SQL Server提供了全文检索功能,可以使用CONTAINS函数进行模糊查询。

搜索邮件正文中包含“find me”文本的邮件:

SELECT * FROM Email WHERE CONTAINS(Body, 'find me')

5、使用存储过程

可以使用存储过程实现模糊查询,并通过参数传递查询条件。

创建一个存储过程SP_FuzzySearch,根据输入的姓名(@Name)进行模糊查询:

CREATE PROCEDURE dbo.SP_FuzzySearch (@Name VARCHAR(50))
AS
BEGIN
SELECT *
FROM Customer
WHERE Lastname LIKE '%' + @Name + '%'
END

然后执行存储过程:

EXECUTE dbo.SP_FuzzySearch 'Smith'

二、SQL的模糊查询通配符

1、%

表示任意0个或多个字符。一般在匹配字符串的前后都会加上%。举例:匹配含有 “数据” 的字符串,可以用,WHERE FieldName LIKE ‘%数据%’。如果是匹配首(尾)含某个字符串的值,则用 数据%(%数据)。

2、_

表示 单个 任意字符。当我们需要限制匹配的字符串的长度时,可以用 _ 替代。举例:当需要匹配“北”开头的两个字符的对象时,可以用“北_”。

3、[]

罗列待匹配的单个字符。当知道要匹配的对象的范围时,我们可以用 [] 罗列这些字符。举例:当语句写为:'[冬西南]瓜’,匹配的是 “冬瓜”,“西瓜”,“南瓜”字符串。'[0-4]’ 匹配的是 0,1,2,3,4。'[a-d]’ 匹配的是 a,b,c,d。对于通配符的匹配,需要在外层用 [] 括起来。

4、[^ ] 或者 [! ]

不含所罗列字符的单个字符(两种写法)。与第3点相反,用哪种匹配方式取决于匹配的集合哪个更小。如果匹配字符的集合小,就用 [],如果匹配的集合大,远大于不包含集合,则用 [^ ]。举例:语句 [^冬西南]瓜,匹配的是:甜瓜、香瓜、坏瓜、傻瓜…… 这类不含 [冬西南] 的字符。

三、sql语言的特点

1、SQL风格统一

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

2、高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式

SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

4、以同一种语法结构提供两种使用方式

SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(如C、C#、JAVA)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。

5、语言简洁,易学易用

SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

延伸阅读1:结构化查询语言

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

前后端分离低代码开发:高效构建数字化应用的新模式
07-08 11:05
揭秘前端低代码拖拽原理:如何高效实现拖拽功能?
07-08 11:05
前端风景页面低代码:高效开发的全新选择 | 解决方案与案例
07-08 11:05
免费的低代码可视化真的能提升企业开发效率吗?
07-08 11:05
低代码驱动的优点是啥?这些核心优势你了解吗
07-08 11:05
想知道前端低代码领域是啥?快来了解一下
07-08 11:05
韩国创始人的低代码平台有何特别之处?
07-08 11:05
前端低代码组件实现:如何选择合适的工具并提升开发效率?
07-08 11:05
八家低代码头部厂商全解析,助力企业数字化转型
07-08 11:05

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科发路8号金融基地1栋5F5
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
137-1379-6908
申请预约演示
立即与行业专家交流