我正在使用SQL Server 2012,我需要对一个名为Notes的特定字段执行搜索。搜索条件是查找在该特定字段中提到术语8%的所有行。
我的WHERE查询的T-SQL子句如下所示:
WHERE [Notes] like '%[8%]%'但是,根据上述语法,查询没有正确地进行筛选。它还包括提到术语8的行。
我看过以下问题中提出的答案,但仍然没有给出正确的答案。
发布于 2018-03-23 05:59:54
单个字符类表示单个字符。因此,[%]表示文字百分比符号,而8[%]表示文字8%。试试这个:
SELECT * FROM yourTable WHERE [Notes] like '%8[%]%'
演示
发布于 2018-03-23 05:56:21
您需要在查询中转义%,例如在下面
SELECT columns FROM table
WHERE column LIKE '%\%%' ESCAPE '\'下面是来自MSDN的
可以搜索包含一个或多个特殊通配符的字符串。例如,客户数据库中的折扣表可以存储包含百分比符号(%)的折扣值。若要将百分比符号搜索为字符而不是通配符,必须提供转义关键字和转义字符。例如,示例数据库包含一个名为注释的列,该列包含30%的文本。若要搜索注释列中任何位置包含字符串30%的行,请指定WHERE子句,如WHERE comment LIKE '%30!%%' ESCAPE '!'。如果未指定转义和转义字符,则数据库引擎将返回字符串30的任何行。
您可以尝试以下由@TimBiegeleisen给出的答案,这也是很简单的方法。
发布于 2018-03-23 06:05:59
只需将where子句改为
WHERE `Notes` LIKE '%8!%%' ESCAPE '!https://stackoverflow.com/questions/49443192
复制相似问题