首页 > Linux操作系统 > Linux操作系统 > Oracle结果集处理
1.取二个结果集的交集
1)第一种方法:利用操作符intersect
intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。
举例说明:
表A的数据结构:
| 中文名称 | 字段名 | 类型 | 长度 |
| 学号 | code | C | 4 |
| 姓名 | name | C | 8 |
| 中文名称 | 字段名 | 类型 | 长度 |
| 学号 | Student_code | C | 4 |
| 姓名 | Student_name | C | 8 |
| 分数 | score | N | 3 |
| SQL>select code, name from A intersect select student_code,student_name from B; |
![]() 图1使用intersect操作符查询的结果 |
| SQL>select code,name from A where A.code in (select student_code from B) and A.name in (select student_name from B) order by A.code; |
![]() 图2使用in子句查询的结果 2.取二个结果集的并集 minus运算:返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。(并集) union 取并集 去掉重复的 union all 取并集 仅仅结果集合并 3.Oracle merge into 用法及例子 语法: MERGE [hint] INTO [schema .] table [t_alias]
USING [schema .] { table | view | subquery } [t_alias]
ON ( condition ) WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause; EXAMPLE: merge into tj_test1 tt1 using tj_test tt on (tt1.id=tt.id) when matched then update set tt1.name=tt.name, tt1.age=tt.age when not matched then insert values( tt.id, tt.name, tt.age)
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17179887/viewspace-677133/ ,如需转载,请注明出处,否则将追究法律责任。