我在存储过程里写了一个select语句,可不可以获取语句里得的值。就是说。
我要获取select*from a  里   a表里的2个值。再进行查询,是在一个存储过程里哟。

解决方案 »

  1.   

    select * from b where id
    in(select id from a where id>4)
      

  2.   


    我是在存储过程里写的哟,然后我想返回查询出来的值,副个参数,然后再执行一个sql语句。
      

  3.   

    没太明白.
    如果是要通过查询结果再作进一步的查询,可以用
    select @a=a,@b=b from tb
    这样的语句先从tb中查询出内容,再用类似
    select * from tc where id=@a and col=@b
    的语句进行查询.
    如果第一次查询所得的是对象名,如一个表名,则要用动态语句:
    declare @str varchar(4000)
    set @str='select * from '+a+' where id='''+@b+''''
    exec(@str)
    来实现.
      

  4.   

    --要定义两个临时变量接收a表中的值,假设a有两个字段分别是id和name
    declare @id int,@name varchar(100)
    select @id=id,@name=name from a where id=100
    --再利用得到的@id和@name执行你后面的操作
      

  5.   

    输出参数 
    declare @num int, @sqls nvarchar(4000) 
    set @sqls='select count(*) from tableName' 
    exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) 
    set @sqls='select @a=count(*) from tableName ' 
    exec sp_executesql @sqls,N'@a int output',@num output 
    select @num 
      

  6.   

    declare @num int, @sqls nvarchar(4000) 
    set @sqls='select count(*) from tableName' 
    exec(@sqls)