SQL Server には、ワイルドカード検索を処理する LIKE 演算子があります。私の顧客は、アプリケーションのユーザー インターフェイスで "*" (アスタリスク) 文字をワイルドカード文字として使用したいと考えています。LIKE ワイルドカード検索を実行する前に、キーワードに a "%" であり、実際の文字列で "%" を見つける必要があります。もしそうなら、それらは何ですか?
したがって、[table1].[column1] のテキスト文字列に「*」(アスタリスク)が含まれることはないと仮定してください。
これが私がこれまでに持っているものです。"%"
標準キャラとカスタム以外のシチュエーションをもっと扱う必要があるのか"*"
-- custom replacement
select REPLACE('xxx*xxx', '*', '%')
-- standard replacements
select REPLACE('xxx%xxx', '%', '[%]')
select REPLACE('xxx_xxx', '_', '[_]') -- ???
select REPLACE('xxx[xxx', '[', '[[]') -- ???
select REPLACE('xxx]xxx', ']', '[]]') -- ???
例:
SET @p = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@p, ']', '[]]'), '[', '[[]'), '_', '[_]'), '%', '[%]'), '*', '%')
SELECT 'xxxxxxxxx%xxxxxx' LIKE @p
SELECT [table1].[column1] LIKE @p