我在这里,miss you.
命中注定曾经的不可回首;唯念可使未来的难以忘怀

导航

 

  今天我需要获取到两张完全不相关的表格Ⅰ、Ⅱ中的两个字段的数据,然后使用游标C输出。

  原先的想法是将单个表格中的数据先收集到游标中,就是将表格Ⅰ中的数据使用游标A进行表示,表格Ⅱ中的数据使用游标B进行表示,然后将游标A、B中的数据整合到游标C中。

   问题出现在整合过程中,网上查的资料是需要将游标A、B中的数据先写入临时表中,然后再使用游标C将数据从临时表中检索出来。很惭愧,我折腾了半天不得要领。    

      后来翻看SQL SERVER的书查看到了联合查询,依葫芦画瓢,在Oracle的存储过程中使用UNION关键字,将问题完美解决了。

OPEN all_info FOR 
 SELECT a.d_id AS user_id,
a.d_name AS user_name
FROM 表格Ⅰ a
UNION  (ALL)
SELECT b.p_id AS user_id,
b.p_name AS user_name
FROM 表格Ⅱ b

  联合查询是指将两个或两个以上的SELECT语句通过UNION运算符连接起来的查询,联合查询可以将两个或更多查询的结果组合为单个结果集,该结果及包含联合查询中所有查询的全部行。

  使用UNION组合两个查询的结果集的两个基本规则是:

  • 所有查询中的列数和列的顺序必须相同;
  • 数据类型必须兼容。

  ALL:在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。

  特此记之。

 

posted on 2015-09-08 13:22  lancet-once  阅读(607)  评论(0)    收藏  举报