今天我需要获取到两张完全不相关的表格Ⅰ、Ⅱ中的两个字段的数据,然后使用游标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:在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。
特此记之。
浙公网安备 33010602011771号