2

このTSQLを考えてみましょう:

declare @b varchar(100)

set @b = 'BANK-41'

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

BANK-TSQL が文字列 " " と " " に一致するのはなぜ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 に答える