Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在T-SQL中转义百分号?_Sql Server_Tsql - Fatal编程技术网

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

Sql server 如何在T-SQL中转义百分号?,sql-server,tsql,Sql Server,Tsql,虽然如此,但它特别提到了DB2 如何使用LIKE搜索已包含百分比%符号的字符串?LIKE运算符使用%符号表示通配符。您可以将ESCAPE关键字与LIKE一起使用。只需在字符串中的每个现有%符号前加上所需字符(例如“!”),然后添加转义“!”(或您选择的字符)到查询末尾 例如: SELECT * FROM prices WHERE discount LIKE '%80!% off%' ESCAPE '!' 这将使数据库将80%视为要搜索的字符串的实际部分,而不是80(通配符) 使用括号。所以要找

虽然如此,但它特别提到了DB2


如何使用
LIKE
搜索已包含百分比
%
符号的字符串?
LIKE
运算符使用
%
符号表示通配符。

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

例如:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'
这将使数据库将80%视为要搜索的字符串的实际部分,而不是80(通配符)


使用括号。所以要找75%

WHERE MyCol LIKE '%75[%]%'

这比ESCAPE更简单,对于大多数RDBMS来说都很常见。

在MySQL中


其中列的名称,如“%|%%”转义“|”

可以使用下面的代码查找特定值

WHERE col1 LIKE '%[%]75%'
当您希望在%符号后有一个位数时,可以编写以下代码

WHERE col2 LIKE '%[%]_'

另请注意,在其他构造(如用户函数、连接等)中,不必转义百分比符号。也可以转义下划线通配符:
[\u]
。那么,你如何摆脱开放的方括号呢?像这样:
[[]
。使用转义子句比MS的大脑受损引用机制更容易理解。但问题是关于T-SQL的。
WHERE col2 LIKE '%[%]_'