存储过程里如何处理select结果
在存储过程里,有一个select查询,得到多条不同的结果,我要用这些结果作为再次查询的条件,该如何处理呢 ?比如第一次查询得到了结果10,20,30.然后需要再做3次查询,条件分别是where num=10,where num=20,where num=30.关键是如何保存第一次得到的3个结果呢? 放到临时表里吧。如果重要的话就放固定表里了。 一、使用临时表二、使用游标 建议使用游标,
declarecursor_name cursor
for select n1,n2,n3 from tablename
for read only
open cursor_name
feth cursor_name into @a,@b,@c
while @@sqlstatus=0
看你了.....
close cursor_name
deallocate cursor_name 游标要好好的学习学习,对SQL编程很有益处。 学习呀。!!!! 数据量大且二次查询不复杂的话建临时表,游标比较慢 建议用临时表不过游标还是要学习的 select XXX into #temp_tbl 建议临时表,使用游标影响速度 使用嵌套 算法
select b.* from b,(select num from d) as a where a.num=b.num 临时数据只用一次,用嵌套法,如多次使用 建设用临时表 #temp1
select num into #temp1 from dtable
select b.* from b,#temp a where a.num=b.num
在SQL 2000 中 临时表只在同一个连接任务下有效,而且多个用户的同名临时表不冲突。(显性名称虽然相同,但系统已经分别处理,所以可用)而人工设置的临时表(不带#的)多用户同时操作会冲突。
页:
[1]
2