比如我有两张表。  比如
    info1             info2
 spdm     mc          mc
 123123   小洋人       洋人
 123121   大水牛       牛
 123111   小牛人       ....
 ......   .....
我知道like %%可以模糊查找但是只能有一个返回值才行
select spdm,mc from info1 where mc in (select mc from info2)这样就不行了。换个like 也无法查询。请问一下。我应该怎么写这段语句?

解决方案 »

  1.   

    select top 1 spdm,mc from info1 where mc like '%小%'
      

  2.   

    DECLARE @sql VARCHAR(1000)
    SET @sql = ''
    SELECT @sql=@sql+'select * from info1 where mc like ''%'+mc+'%'' '
    FROM info2
    WHERE mc = '洋人' 
    EXECUTE (@sql)
      

  3.   

    DECLARE @sql VARCHAR(1000)
    SET @sql = 'select * from info1 where 1<>1 '
    SELECT @sql=@sql+'or mc like ''%'+mc+'%'' '
    FROM info2
    EXECUTE (@sql)
      

  4.   

    select spdm,mc from info1
    where exists (select mc from info2 where info1.mc like '%'+info2.mc+'%')如果info2.mc是char型不是varchar型的话,最后一个条件要去掉结尾的空格。
    select spdm,mc from info1
    where exists (select mc from info2 where info1.mc like '%'+rtrim(info2.mc)+'%')
      

  5.   

       蜗牛的的确可以。xiedewei的我照本登科的写上去。似乎不行。您的那个应该是存储过程了吧。这些都是我没接触过的。谢谢你们的指教。看来sql 我还得多学学