可以啊。 SQL Server可以直接在过程中写select * from tableA就可以将结果集返回到前台.Net中。 但在Oracle中必须先要定义游标类型,例如CUR,在过程的参数定义两个返回参数,类型为CUR,例如procedure(A OUT CUR,B OUT CUR) is ……就会返回两个游标类型,对于前台而言就是数据集。
用union子句,写个例子给你: SELECT max(b.cbcbh) ,a.hh ,max(b.hm) ,sum(a.jffdl+jfpdl+jfgdl) ,sum(bjzdl),sum(bjwgdl) FROM b_dltzxx a,b_dftzlc b WHERE a.dfid=b.dfid GROUP BY a.hh UNION SELECT d.cbcbh ,'','',SUM(jffdl+jfpdl+jfgdl),sum(bjzdl),sum(bjwgdl) FROM b_dltzxx c,b_dftzlc d WHERE c.dfid=d.dfid GROUP BY d.cbcbh 注意:上下字段个数要相同
如果你想在sql plus中一次执行两个查询,select * from tablea; / select * from tableb; / 把两个查询结果组合在一起: select * from tablea; union all select * from tableb;
.NET的数据集(DataSet)可以一次填充多个表~
我是要一次返回多个表的数据,就是要减少连接数据库的次数~
两个sql之间用;号隔开。或者在command window中。
就能执行。
SQL Server可以直接在过程中写select * from tableA就可以将结果集返回到前台.Net中。
但在Oracle中必须先要定义游标类型,例如CUR,在过程的参数定义两个返回参数,类型为CUR,例如procedure(A OUT CUR,B OUT CUR) is ……就会返回两个游标类型,对于前台而言就是数据集。
SELECT max(b.cbcbh) ,a.hh ,max(b.hm) ,sum(a.jffdl+jfpdl+jfgdl) ,sum(bjzdl),sum(bjwgdl)
FROM b_dltzxx a,b_dftzlc b
WHERE a.dfid=b.dfid
GROUP BY a.hh
UNION
SELECT d.cbcbh ,'','',SUM(jffdl+jfpdl+jfgdl),sum(bjzdl),sum(bjwgdl)
FROM b_dltzxx c,b_dftzlc d
WHERE c.dfid=d.dfid
GROUP BY d.cbcbh
注意:上下字段个数要相同
/
select * from tableb;
/
把两个查询结果组合在一起:
select * from tablea;
union all
select * from tableb;