通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

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

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

相关文章