Вы можете попытаться подсчитать совпадения, используя CROSS APPLY
:
Ввод:
CREATE TABLE #Table1 (
[name] nvarchar(max)
)
CREATE TABLE #Table2 (
[name] nvarchar(100)
)
INSERT INTO #Table1
([name])
VALUES
('My name is Vikash'),
('My name is VGH'),
('My name is VG3'),
('My name is VG4'),
('I have hjk')
INSERT INTO #Table2
([name])
VALUES
('My'),
('name'),
('VGH')
T-SQL (для частичного совпадения):
SELECT t1.[name]
FROM #Table1 t1
CROSS APPLY #Table2 t2
GROUP BY t1.[name]
HAVING SUM(CASE WHEN (t1.[name] LIKE '%' + t2.[name] + '%') THEN 1 ELSE 0 END) > 0
Выходные данные:
------------------
name
------------------
My name is VG3
My name is VG4
My name is VGH
My name is Vikash
T-SQL (для полного соответствия):
SELECT t1.[name]
FROM #Table1 t1
CROSS APPLY #Table2 t2
GROUP BY t1.[name]
HAVING SUM(CASE WHEN (t1.[name] LIKE '%' + t2.[name] + '%') THEN 1 ELSE 0 END) = (SELECT COUNT(*) FROM #Table2)
Выходные данные:
------------------
name
------------------
My name is VGH