我有两张桌子。在表1中,nvarchar A和表2中的nvarchar B是nvarchar A的一部分,如下所示。
Table1
nvarcharA
'This is super test sample'
Table 2
nvarcharB
'super'
我尝试做的是列出表2中表1中任何记录中出现的所有记录。
我已经尝试过:
select CHARINDEX(nvarcharB, nvarcharA) as A from Table1
或
select nvarcharA from Table1
where exists (select nvarcharB from Table2)
可悲的是,这一切都无效。在join语句中没有绑定它们的ID。
任何人都知道有用的解决方案吗?
答案 0 :(得分:3)
你正在寻找这样的东西:
select t2.*
from Table2 t2
where exists (select 1
from Table1 t1
where t1.col like '%' + t2.col + '%'
);
答案 1 :(得分:0)
如果您纯粹希望从Table1获得结果,如果Table2中存在匹配项 你可以“简单地”在你的联接中使用Like语句
你最终可能得到以下结论:
SELECT
nvarcharA,
nvarcharB
from [Table 1]
inner join [table 2]
ON [table 1].nvarcharA like '%' + [table 2].nvarcharB + '%'
您可以使用like语句中使用的变量。 (它们是否应该以数据中的任何位置开始,结束或如示例所示。