MSSQL nvarchar A包含nvarchar B.

时间:2018-02-14 13:17:35

标签: sql sql-server tsql

我有两张桌子。在表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。

任何人都知道有用的解决方案吗?

2 个答案:

答案 0 :(得分:3)

你正在寻找这样的东西:

select t2.*
from Table2 t2
where exists (select 1
              from Table1 t1
              where t1.col like '%' + t2.col + '%'
             );

答案 1 :(得分:0)

如果您纯粹希望从Table1获得结果,如果Table2中存在匹配项 你可以“简单地”在你的联接中使用L​​ike语句

你最终可能得到以下结论:

    SELECT 
      nvarcharA,
      nvarcharB
    from [Table 1] 
    inner join [table 2]
               ON [table 1].nvarcharA like '%' + [table 2].nvarcharB + '%'

您可以使用like语句中使用的变量。 (它们是否应该以数据中的任何位置开始,结束或如示例所示。