Nunca é bom usar os valores separados por vírgula para armazenar no banco de dados, se for viável, tente fazer tabelas separadas para armazená-los, pois provavelmente isso é
1:n
relação. Se isso não for viável, existem as seguintes maneiras possíveis de fazer isso. Se o número de valores a serem correspondidos permanecer o mesmo, você pode querer fazer a série de
Like
declaração junto com OR/AND
dependendo de sua exigência. Ex.-
WHERE
Media LIKE '%21%'
OR Media LIKE '%30%'
OR Media LIKE '%40%'
No entanto, a consulta acima provavelmente capturará todos os valores que contêm
21
mesmo que colunas com valores como 1210
,210
também será devolvido. Para superar isso, você pode fazer o seguinte truque que dificulta o desempenho, pois usa funções em where
cláusula e isso vai contra a criação de Pesquisável
consultas. Mas aqui vai, --Declare valueSearch variable first to value to match for you can do this for multiple values using multiple variables.
Declare @valueSearch = '21'
-- Then do the matching in where clause
WHERE
(',' + RTRIM(Media) + ',') LIKE '%,' + @valueSearch + ',%'
Se o número de valores a serem correspondidos for alterado, talvez você queira examinar FullText Index e você deve pensar no mesmo. E se você decidir seguir com isso depois de
Fulltext Index
você pode fazer como abaixo para obter o que deseja, Ex.-
WHERE
CONTAINS(Media, '"21" OR "30" OR "40"')