1. ホーム
  2. sql-server

PATINDEXのパターン引数でアンダースコア文字をエスケープするには?

2023-09-28 13:36:51

質問

PATINDEXでアンダースコアの位置を見つけるための解決策を見つけました。

DECLARE @a VARCHAR(10)  
SET     @a = '37_21'

PRINT PATINDEX('%_%', @a)                    -- return 1 (false)
PRINT PATINDEX('%!%', REPLACE(@a, '_', '!')) -- return 3 (correct)

他のアイデアはありますか?アンダースコア文字をエスケープする方法とか?

どのように解決するのですか?

いつも括弧でやっています。 '%[_]%'