if exists(select * from industry_tablename  where induaid=@induaid)
               select  @tablename=tablename from industry_tablename where induaid=@induaid 
    exec ('select * from company where companyid in ( select companyid from '+@tablename+'') 试一试呢?

解决方案 »

  1.   

    if exists(select * from industry_tablename  where induaid=@induaid)
                   select  @tablename=tablename from industry_tablename where induaid=@induaid 
        exec ('select * from company where companyid in ( select companyid from '+@tablename+')')
    不好意思,少了个括号!:)
      

  2.   

    如果你的WHERE条件是固定的,直接写就可以了
    如:declare @tablename varchar(20)
         
          if exists(select * from industry_tablename  where induaid=@induaid)
                   select  @tablename=tablename from industry_tablename where induaid=@induaid 
        exec ('select * from '+@tablename + 'where companyid > 1000')如果where 条件是动态的,需要传入参数,得拼串才行,你可以告诉我,是companyid 需要符合什么条件,我可以帮你拼串!