我有一个表格,其中包含需要搜索的字符串[如下图所示]
TableA
之后,我有一个存储数据的表[如下图]
TableB
只有当记录包含TableA中的字符串时,搜索功能才会从TableB中选择[即预期结果应如下图(表C)]
TableC
我尝试过使用下面的SQL,但SQL在尝试运行[Incorrect syntax near 'select'
]时遇到了一些错误,同样,SQL也有点复杂,有没有办法让SQL更简单? / p>
select * from TableB a
where exists
(select colA from TableB b
where b.colA = a.ColA and Contains (b.ColA, select searchCol from TableA))
答案 0 :(得分:4)
答案 1 :(得分:2)
其中一个应该按照我的方式工作
SELECT b.colA
FROM TableB b join TableA a
WHERE colA like '%' + a.ColA + '%';
SELECT b.colA
FROM TableB b join TableA a
WHERE INSTR(b.colA, '{' + a.colA + '}') > 0;
答案 2 :(得分:-1)
SELECT b.* FROM tblA a,tblB b
WHERE PATINDEX('%'+a.Col+'%',b.Col)>0
我搜索了PATINDEX和LIKE之间的性能差异但没有得到确定的答案,有人说当不能使用索引时PATINDEX会更快,这时候搜索的模式被包含在通配符中,例如'%'+ a .Col +'%'虽然其他帖子提到他们可以类似的表现。
也许某些SO SQL向导可以看到水晶球并向我们展示光线