当前位置: 代码迷 >> Sql Server >> 请问Like的一种用法
  详细解决方案

请问Like的一种用法

热度:52   发布时间:2016-04-27 19:52:31.0
请教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 [email protected]
set @[email protected][email protected]+ 'or sss like '
set @[email protected]+1
end
set @sql=substring(@sql,1,len(@sql)-12)
exec(@sql)
  相关解决方案