请教Like的一种用法?
数据库中有一个基础表 baseTable,列如下:
name
1%
2%
要写一个sql语句按照name条件查询另外一个表
现在是这样写的
select sss from table2 where sss like 1% or 2%;
但是baseTable中的name是随时变化的,那有没有一种方法可以象如下语句那样,不管name增加或减少都不用改SQL语句:
select sss from table2 where sss like in (select name from baseTable);这个语句是错误的
请教各位有没有好的方法呢?
------解决方案--------------------没看明白什么意思~~~
------解决方案--------------------mark
------解决方案--------------------不清楚
------解决方案--------------------select sss from table2,baseTable where charindex(name,sss) = 1
------解决方案--------------------name 中所有行如果都有% 可以
select sss from table2 where sss like '%\%% 'escape '\ '
------解决方案--------------------利用动态sql:
declare @sql varchar(2000)
declare @count int
declare @sign varchar(20)
declare @i int
select identity(int,1,1) id,name into #tmp from basetable
set @sql= 'select sss from table2 where sss like '
select @count=count(name) from #tmp
set @i=1
while(@i <@count+1)
begin
select @sign=name from #tmp where id=@i
set @sql=@sql+@sign+ 'or sss like '
set @i=@i+1
end
set @sql=substring(@sql,1,len(@sql)-12)
exec(@sql)