SQL Server转义下划线

我如何逃避下划线字符?

我正在写如下的where子句,并希望能够在最后找到具有_d的实际条目。

Where Username Like '%_d'
0

2 答案

T-SQL Reference for LIKE for SQL Server 2000:

您可以使用匹配字符的通配符模式作为文字字符。要将通配符用作文字字符,请将通配符括在括号内。该表显示了使用LIKE关键字和[]通配符的几个示例。

对于你的情况:

... LIKE '%[_]d'
0
额外

显然@Lasse解决方案是正确的,但还有另一种解决问题的方法:T-SQL运算符 LIKE 定义了可选的 ESCAPE 子句,它可以让你声明一个字符,将下一个字符转义到模式中。

对于你的情况,以下WHERE子句是等价的:

WHERE username LIKE '%[_]d';            -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
0
额外
要完成此图: ESCAPE 子句是S​​QL标准的一部分,并且可以在任何DBMS上工作,而不仅仅是SQL Server。
额外 作者 a_horse_with_no_name,