select * from b where id in(select id from a where id>4)
我是在存储过程里写的哟,然后我想返回查询出来的值,副个参数,然后再执行一个sql语句。
没太明白. 如果是要通过查询结果再作进一步的查询,可以用 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) 来实现.
--要定义两个临时变量接收a表中的值,假设a有两个字段分别是id和name declare @id int,@name varchar(100) select @id=id,@name=name from a where id=100 --再利用得到的@id和@name执行你后面的操作
输出参数 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
declare @num int, @sqls nvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls)
in(select id from a where id>4)
我是在存储过程里写的哟,然后我想返回查询出来的值,副个参数,然后再执行一个sql语句。
如果是要通过查询结果再作进一步的查询,可以用
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)
来实现.
declare @id int,@name varchar(100)
select @id=id,@name=name from a where id=100
--再利用得到的@id和@name执行你后面的操作
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
set @sqls='select count(*) from tableName'
exec(@sqls)