在另一个SQL Server表的列中搜索动态生成的字符串

时间:2017-04-11 01:15:28

标签: sql sql-server

create table #data_search (
    tab1 varchar(50)
)

insert into #data_search values('chan')

create table #data (
     tab1 varchar(50)
)

insert into #data values('afachandra')
insert into #data values('achandra')
insert into #data values('afadra')

Declare @query varchar(50);
Declare @quer varchar(50);

select @query = tab1 
from #data_search;

-- print(@query)

SET @quer = 'select tab1 from #data where tab1 like %'+@query+'%'
execute (@quer);

我有上面的表格,我正在搜索' tab1' ' #data_search'的列表格' tab1' ' #data'的列表。我尝试过使用动态SQL语句,但它不起作用。任何帮助是极大的赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

这应该有效

使用LIKE和Exists

select * from #data d
where exists (
select 1 from #data_search s where d.tab1 like '%' + s.tab1 + '%'
)

结果

tab1
--------------------------------------------------
afachandra
achandra