Предположим, у меня есть набор результатов только из одного столбца, содержащего substrings
:
Table1:
substrings
-----------
substringa
substringb
substringc
substringd
substringe
etc.
-----------
И у меня есть второй набор результатов из другого запроса:
Table2:
id | comment
-------------------------------------------------------------------------------
0001 | A text containing substringa
0002 | A text containing substringd
0003 | A text containing none of the substrings from Table1
0004 | Another text containing substringa
0005 | A text containing substringb
... | etc.
-------------------------------------------------------------------------------
Я хочу вернуть третью таблицу, Table3, содержащую строки в Table2, где комментарий содержит любой из substrings
, существующий в Table1, включая другой столбец с существующим substrings
сам, то есть:
Table3:
id | comment | substrings
-------------------------------------------------------------------------------
0001 | A text containing substringa | substringa
0002 | A text containing substringd | substringd
0004 | Another text containing substringa | substringa
0005 | A text containing substringb | substringb
... | etc. | ...
-------------------------------------------------------------------------------
Можно предположить, что все комментарии в Table2 содержат ровно ноль или одну из подстрок в Table1.Я пытался найти решение с использованием комбинации операторов charindex
, substring
, exists
или like
, но не смог найти какое-либо решение, и у MS SQL Server нет подходящего оператора regexp
, о котором я знаю,Есть ли что-то похожее на оператор like
для проверки нескольких строк в MS SQL Server, или есть более эффективные способы сделать это?Размер substrings
в Таблице 1 имеет порядок 10 ^ 2-10 ^ 3 и динамически изменяется, поэтому я не могу жестко закодировать, как описано в этом сообщении .