«Вопрос SQL: Как я могу сохранить несколько строк с подстановочными символами в таблице и передать их оператору LIKE в предложении where» - PullRequest
0 голосов
/ 22 мая 2019

Вот мой сценарий: у меня есть таблица: dbo.Filters (FilterName vacrchar (100), Category varchar (100)) примерные значения приведены ниже

enter image description here

Я использую эту таблицу для хранения примеров строк, которые должны использоваться с поиском по подстановочному знаку с оператором like в причине где, и есть несколько из них, которые будут использоваться в различных операторах условия / падежа на основекатегория, в которой они находятся, поэтому я не могу просто использовать, где с и / или условиями, вместо этого я должен хранить их в таблице, и эти строки постоянно меняются.Таким образом, единственный способ для меня - классифицировать их и использовать категорию как часть условия моего фильтра и передать соответствующие значения в предложение where.Он должен использоваться для чего-то подобного ниже, но из таблицы, а не просто упоминать их в запросе:

select *
from dbo.AnotherTable 
where [freeformtextfield] like ('%I have reached%','%I've reached%','%I reached%') 

- мои фильтры для достигнутой категории / не достигнуты

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Вы также можете использовать EXISTS

select  *
from    dbo.AnotherTable
where   exists (select  1 from  Filters where   [freeformtextfield] like '%' + FilterName + '%')
1 голос
/ 22 мая 2019

С объединением таблиц:

select distinct a.* 
from dbo.AnotherTable a inner join dbo.Filters f
on a.[freeformtextfield] like concat('%', f.[FilterName], '%')
...