Sql server SQL Server转义下划线
如何转义下划线字符 我正在写类似以下where子句的东西,希望能够找到末尾带有_d的实际条目Sql server SQL Server转义下划线,sql-server,Sql Server,如何转义下划线字符 我正在写类似以下where子句的东西,希望能够找到末尾带有_d的实际条目 Where Username Like '%_d' : 可以将通配符模式匹配字符用作文字字符。要将通配符用作文字字符,请将通配符括在括号中。下表显示了使用LIKE关键字和[]通配符的几个示例 对于您的情况: ... LIKE '%[_]d' 显然@Lasse solution是正确的,但是还有另一种方法可以解决您的问题:T-SQL操作符LIKE定义可选子句,它允许您声明一个字符,该字符将转义模式中的
Where Username Like '%_d'
:
可以将通配符模式匹配字符用作文字字符。要将通配符用作文字字符,请将通配符括在括号中。下表显示了使用LIKE关键字和[]通配符的几个示例
对于您的情况:
... LIKE '%[_]d'
显然@Lasse solution是正确的,但是还有另一种方法可以解决您的问题:T-SQL操作符
LIKE
定义可选子句,它允许您声明一个字符,该字符将转义模式中的下一个字符
对于您的情况,以下WHERE条款是等效的:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
这些解决方案完全有道理。不幸的是,这两种方法对我都不起作用。我没有试图与它争论,而是采取了一种变通办法:
select * from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name
这对我来说很管用,就用逃跑吧
'%\\\%'
在SSIS v18.0中,这些都不适用于我,所以我会继续这样做:WHERE CHARINDEX(''u',thingyoursearching)<1
…我试图忽略带有下划线的字符串。如果要查找带有下划线的内容,只需将其翻转:
其中CHARINDEX(“''u',thingyoursearching)>0
我遇到了一个类似的问题,使用like模式'%\'
不起作用-如问题所示:-)
使用'%\\\%'
也不起作用,因为第一个\
被解释为“在类似之前”
使用'%\\\\\%'
有效。\\
(双反斜杠)首先转换为单个\
(反斜杠),然后在类似模式中使用。类似“%[\\]%
Add[]帮我完成了这幅图:
ESCAPE
子句是SQL标准的一部分,可以在任何DBMS上使用,而不仅仅是SQL Server。噢,天哪。。。如果仍然不起作用,请确保列正确。