发布网友 发布时间:2022-04-08 01:32
共4个回答
热心网友 时间:2022-04-08 03:01
INTERSECT,取两个表中的交集。
举例如下:
1、创建测试表,
create table test_tbl_1(id varchar2(20));
create table test_tbl_2(id varchar2(20));
2、插入测试数据,部分值含回车换行符;
insert into test_tbl_1 values(1);
insert into test_tbl_1 values(2);
insert into test_tbl_1 values(3);
insert into test_tbl_1 values(4);
insert into test_tbl_2 values(3);
insert into test_tbl_2 values(2);
insert into test_tbl_2 values(5);
insert into test_tbl_2 values(6);
commit;
3、查询表中全量数据,可以发现部分值含回车换行符;select 1 as tbl, t.*, rowid from test_tbl_1 t union all select 2 as tbl, t.*, rowid from test_tbl_2 t;
4、编写语句,使用INTERSECT,获取两表的交集;
select * from test_tbl_1 INTERSECT select * from test_tbl_2;
热心网友 时间:2022-04-08 04:19
INTERSECT的意思是对两个 SQL 语句所产生的结果做处理的。是求两个结果的交集。
语法如下:SELECT PERSON_NAME FROM PERSON WHERE ROWNUM <=5 INTERSECT SELECT PERSON_NAME FROM PERSON WHERE ROWNUM <=8。
扩展资料
使用intersect的*条件如下:
1、所有查询中的列数和列的顺序必须相同。
2、比较的两个查询结果集中的列数据类型可以不同但必须兼容。
3、比较的两个查询结果集中不能包含不可比较的数据类型(xml、text、ntext、image 或非二进制 CLR 用户定义类型)的列。
4、返回的结果集的列名与操作数左侧的查询返回的列名相同。ORDER BY 子句中的列名或别名必须引用左侧查询返回的列名。
5、不能与 COMPUTE 和 COMPUTE BY 子句一起使用。
6、通过比较行来确定非重复值时,两个 NULL 值被视为相等。
参考资料来源:百度百科-Oracle数据库
热心网友 时间:2022-04-08 05:54
INTERSECT :查询两张表中的交集 也就是说查询两张表共有的数据集···热心网友 时间:2022-04-08 07:45
SQL INTERSECT的用法. 和UNION 指令类似, INTERSECT 也是对两个SQL 语句所产生的结果做处理的。