如何在T-SQL中转义百分号?


187

这个问题也有答案,但是它专门提到了DB2。

如何使用已经有百分比符号的字符串搜索字符串?该操作员使用符号通配符表示。LIKE%LIKE%

Answers:


284

使用括号。所以要寻找75%

WHERE MyCol LIKE '%75[%]%'

这比ESCAPE更简单,并且对于大多数RDBMS都是常见的。


2
还要注意你不必为躲避其他构造一个百分比符号,如用户功能,串联等
勒布朗·戴维斯


2
您也可以转义下划线通配符:[_]。那你如何逃避方括号呢?像这样:[[]sqlserver2000.databases.aspfaq.com/...
乔鲍托特

与MS的大脑损坏报价机制相比,使用ESCAPE子句更易于理解。
Suncat2000

51

您可以将ESCAPE关键字与一起使用LIKE。只需%在字符串中的每个现有符号前添加所需的字符(例如“!”),然后ESCAPE '!'在查询末尾添加(或您选择的字符)。

例如:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

这将使数据库将80%作为要搜索的字符串的实际部分而不是80(通配符)。

适用于的MSDN文档 LIKE



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.