1|3、または 1、または 1|7|12 のような 1 つのフィールドにデータが保存されています。必要なのは、私の番号がそこにあるかどうかを調べる WHERE 条件です。また、変数「番号」が存在しない場合は、すべての結果を返す必要があります。これを試してみましたが、うまくいかないようです。
Field LIKE '%number%' AND Field NOT LIKE '_number%'
1|3、または 1、または 1|7|12 のような 1 つのフィールドにデータが保存されています。必要なのは、私の番号がそこにあるかどうかを調べる WHERE 条件です。また、変数「番号」が存在しない場合は、すべての結果を返す必要があります。これを試してみましたが、うまくいかないようです。
Field LIKE '%number%' AND Field NOT LIKE '_number%'
効率的なクエリを作成するには、まずこれらの数値を別のテーブルに配置する必要があります。フィールドの一致部分はインデックスを使用できないため、適切にスケーリングされません。
それができない場合は、区切り記号で囲まれた値を確認するため、フィールド値の前後に区切り記号を追加して完全に一致させる必要があります。
where '|' + Field + '|' like '%|' + @number + '|%'
select (case when (Field LIKE '%|' + cast(number as varchar(32)) + '|%' or Field LIKE cast(number as varchar(32)) + '|%' or Field LIKE '%|' + cast(number as varchar(32)) or cast(number as varchar(32)) = Field) then cast(number as varchar(32)) else Field end)
from ...