jjyy 发表于 2009-1-12 16:56:12

存储过程里如何处理select结果

在存储过程里,有一个select查询,得到多条不同的结果,我要用这些结果作为再次查询的条件,该如何处理呢 ?比如第一次查询得到了结果10,20,30.然后需要再做3次查询,条件分别是where num=10,where num=20,where num=30.关键是如何保存第一次得到的3个结果呢?

ehxz 发表于 2009-1-13 11:27:19

放到临时表里吧。如果重要的话就放固定表里了。

ribut9225 发表于 2009-2-28 11:00:36

一、使用临时表
二、使用游标

sxlangzi 发表于 2009-3-17 10:41:21

建议使用游标,
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

peisentung 发表于 2009-3-25 13:35:04

游标要好好的学习学习,对SQL编程很有益处。

ringlee_09 发表于 2009-4-9 13:20:15

学习呀。!!!!

algatross 发表于 2009-6-24 14:34:26

数据量大且二次查询不复杂的话建临时表,游标比较慢

podie881111 发表于 2009-7-15 14:24:18

建议用临时表不过游标还是要学习的

shakeone 发表于 2009-7-23 21:57:44

select XXX into #temp_tbl

summer9591 发表于 2009-7-25 22:16:11

建议临时表,使用游标影响速度

世界少校 发表于 2009-8-13 16:14:41

使用嵌套 算法
select b.* from b,(select num from d) as a where a.num=b.num

世界少校 发表于 2009-8-13 16:18:56

临时数据只用一次,用嵌套法,如多次使用 建设用临时表 #temp1
select num into #temp1 from dtable

select b.* from b,#temp a where a.num=b.num

在SQL 2000 中 临时表只在同一个连接任务下有效,而且多个用户的同名临时表不冲突。(显性名称虽然相同,但系统已经分别处理,所以可用)而人工设置的临时表(不带#的)多用户同时操作会冲突。
页: [1] 2
查看完整版本: 存储过程里如何处理select结果

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com