在sql server中搜索具有特殊字符的行

今天在解决一个编程问题时,我注意到如果不使用特殊语法,就不能使用LIKE搜索包含特殊字符的字符串列,例如%或∗。找出这个问题只需要几分钟,但记住语法总是比较容易,如果你写它。...

今天在解决一个编程问题时,我注意到如果不使用特殊语法,就不能使用LIKE搜索包含特殊字符的字符串列,例如%或∗。找出这个问题只需要几分钟,但记住语法总是比较容易,如果你写它。

所以是的,这篇文章只是为了我的利益。希望它也能帮助别人。

假设您要查找包含文本“100%”的任何字段,因此将此查询放在一起:

SELECT * FROM tablename WHERE fieldname LIKE ‘%100%%’

您将得到包含“100”的所有行以及包含“100%”的行,而不是您想要的。

这里的问题是SQLServer使用百分号、下划线和方括号作为特殊字符。在LIKE查询中,如果不转义它们,就不能将它们用作普通字符。

方括号逃逸

您可以用方括号将%或u括起来,告诉SQL Server里面的字符是普通字符。

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

T-SQL转义语法

或者,可以将转义运算符附加到查询中,并在要转义的值之前添加\字符。

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘\’

查询的转义“\”部分告诉SQL引擎将\后面的字符解释为文字字符,而不是通配符。

我个人觉得第二种方法更容易处理,你也可以用它来摆脱方括号。

  • 发表于 2021-04-14 11:51
  • 阅读 ( 108 )
  • 分类:互联网

你可能感兴趣的文章

联盟(union)和sqlserver中的union all(union all in sql server)的区别

...外,它还保护数据并减少数据冗余以实现数据一致性。sqlserver就是这样一种DBMS。结构化查询语言(SQL)是数据库管理系统中管理数据的语言。Union和Union all是SQL中的两个命令,它们有助于在表数据中执行set操作。 目录 1. 概述和...

  • 发布于 2020-10-18 10:13
  • 阅读 ( 239 )

如何将sql数据库备份到网络共享

...期备份SQL数据库。我们已经介绍了可以轻松地将所有SQL server数据库备份到本地硬盘驱动器的方法,但这并不能防止驱动器和/或系统故障。作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。 本地备份...

  • 发布于 2021-04-13 10:39
  • 阅读 ( 209 )

使用sql server management studio还原sql数据库备份

...单的SQL数据库还原,该命令行非常适合还原在同一个SQL Server安装上创建的备份文件,但是,如果您要还原在不同安装上创建的备份,或者只是喜欢点击式界面,使用SQLServerManagementStudio(或速成版)可以简化此任务。 注意:SQLSer...

  • 发布于 2021-04-13 11:29
  • 阅读 ( 174 )

为您的网络设置lan唤醒控制面板

...使用用户实例的sqlexpress,但我们将向您展示如何使用sqlserver的完整版本。 桌面计算机必须配置远程唤醒功能。通常,这是网卡的默认设置,但如果您想确定,可以在设备管理器中检查网卡的设备属性。 总的来说,可以从ASP.NET...

  • 发布于 2021-04-13 12:18
  • 阅读 ( 180 )

ms sql服务器(ms sql server)和神谕(oracle)的区别

...统(RDBMS)。RDBMS的例子有MS Access、Oracle、IBM的DB2、MS SQL Server、Sybase和My SQL。哪一个是最好的,哪一个RDBMS最适合我们的需要。在不同的系统之间进行有效的比较可以帮助我们选择合适的数据库。在本文中,让我们比较并确定mssql...

  • 发布于 2021-06-24 23:32
  • 阅读 ( 221 )

实例(instance)和sql server中的数据库(database in sql server)的区别

SQL server中实例和数据库的主要区别在于,实例是作为操作系统服务运行的sqlservr.exe可执行文件的副本,而数据库是在表中存储数据的系统数据集合。 sqlserver是微软开发的关系数据库系统。它由GUI和命令行组成。程序员可以使用S...

  • 发布于 2021-07-01 06:19
  • 阅读 ( 984 )

默认实例(default instance)和sql server中的命名实例(named instance in sql server)的区别

SQL server中默认实例和命名实例的主要区别在于,一个SQL server只能有一个默认实例,但可以有多个命名实例。 SQL Server是Microsoft的RDBMS。它允许用户创建数据库并在数据库的表中排列数据。用户可以使用结构化查询语言来操作数据...

  • 发布于 2021-07-01 06:34
  • 阅读 ( 529 )

烧焦(char)和瓦尔查尔(varchar)的区别

...数据。 引用 1.MikeRayMSFT.“Char和Varchar(Transact-SQL)–SQL Server。“SQL Server | Microsoft文档,可在此处获得。 

  • 发布于 2021-07-01 23:55
  • 阅读 ( 196 )

数据传输系统(dts)和ssis公司(ssis)的区别

...ETL工具的帮助,但SSIS本身充当ETL工具。DTS只是Microsoft SQL Server 2000的一个组件,可以自由使用,但SSIS不是Microsoft SQL Server 2000的一个组件。DTS扩展是数据转换服务,而SSIS扩展是SQL Server集成服务。SQLServer7中包含了DTS,为不同的作...

  • 发布于 2021-07-11 16:47
  • 阅读 ( 340 )

microsoft sql server中的非空约束

Microsoft SQL Server中的非空约束指定列不能包含空值。 Null与零或零字符串不同。Null表示未进行任何输入。 在数据库列上创建新的NOTNULL约束时,SQL Server会检查该列的当前内容中是否存在任何空值。如果列当前包含空值,则约...

  • 发布于 2021-09-06 15:24
  • 阅读 ( 135 )