2

考虑这个TSQL

declare @b varchar(100)

set @b = 'BANK-41'

IF @b LIKE 'BANK_%'
BEGIN
    print 'Wrong Matching'
END

为什么TSQL会匹配字符串“ BANK-”和“ BANK_”?

4

3 回答 3

6

在 TSQL 中,下划线是表示单个字符的通配符。

为了逃避,你需要用方括号括起来,像这样:

'银行[_]%'

请参阅此页面: http ://www.dirigodev.com/blog/web-development-execution/escaping-percent-and-underscore-characters-in-t-sql-like-clause/

于 2013-10-25T19:47:44.520 回答
3

我认为 SQL Server 中的下划线是为通配符保留的。你需要逃避它。我认为你可以把它放在括号中:

%[_]%
于 2013-10-25T19:47:36.537 回答
2

您需要转义“_”。它是 Like 语句的特殊字符。您可以将其括在 [] 中。

请参阅LIKE (Transact-SQL)

于 2013-10-25T19:46:41.760 回答