我有两个表做比较A,B A表数据量小,B表数据量大,这种情况一用EXISTS或是NOT EXISTS我知道.如:
SELECT NAME,SEX FROM B
WHERE NOT EXISTS(SELECT NAME,SEX FROM A WHERE A.ID=B.ID AND A.SEX=B.SEX AND A.NAME=B.NAME) 这样能把B表中的唯一记录检索出来,如果现在要另一种需求.
A表的数据量小,B表的数据量大,我要检索出A表中与B表中编号不同,姓名不同,性别不同的记录来.用IN,NOT IN也好像不太合适
SELECT * FROM A A1,B B1
WHERE A1.ID<>B1.ID AND A1.NAME<>B1.NAME .....
如果你是这种方法的话不用告诉我了.
select * from a a1 left job b b1 on 这种方法你是得不到a1里边不同的数据的因为他是一个合集,这种方法的话你也不用告诉我了
SELECT NAME,SEX FROM B
WHERE NOT EXISTS(SELECT NAME,SEX FROM A WHERE A.ID=B.ID AND A.SEX=B.SEX AND A.NAME=B.NAME) 这样能把B表中的唯一记录检索出来,如果现在要另一种需求.
A表的数据量小,B表的数据量大,我要检索出A表中与B表中编号不同,姓名不同,性别不同的记录来.用IN,NOT IN也好像不太合适
SELECT * FROM A A1,B B1
WHERE A1.ID<>B1.ID AND A1.NAME<>B1.NAME .....
如果你是这种方法的话不用告诉我了.
select * from a a1 left job b b1 on 这种方法你是得不到a1里边不同的数据的因为他是一个合集,这种方法的话你也不用告诉我了
解决方案 »
- NOT IN 优化问题,谢谢?
- sql 语句
- oracle游标问题
- 大家好,oracle10g没有操作界面,用什么软件操作比较方便啊
- 谁有分析函数的资料
- 如何查看输出的变量?
- 再进行imp时候出错: 错误1658出现,加大表空间仍然没有解决问题
- trigger小问题,高手请帮忙!!!!!!!!!!!!!
- 在LINUX下操作ORACLE数据库的基本问题。
- ORACLE10G 只有数据文件创建控制文件出错怎么办?
- ORACLE的存储过程 判断问题
- ORA-00600: internal error code, arguments: [KGHALP1], [0x0], [], [], [], [], [], []错误
select id,name,sex from a
minus select id,name,sex from b
=======================
只要其中一个条件不同就选出来?是吗?SELECT NAME,SEX
FROM B
WHERE NOT EXISTS(SELECT 1 FROM A WHERE A.ID=B.ID or A.SEX=B.SEX or A.NAME=B.NAME)
select id,name,sex from b
minus select id,name,sex from a
select A.* from a left job b on
A.ID=B.ID AND A.SEX=B.SEX AND A.NAME=B.NAME
WHERE B.ID IS NULL
select id,name,sex from a
minus select id,name,sex from b
不要'或' 要and 怎么改正一下啊
where f.employeeno<>m.fc_psn_id
and f.empname<>m.name_ch
and f.gender<>decode(m.sex,'男','1','女','2')
and f.birthday<>m.birthdate
and f.idcard_no<>m.idcard
就是这个查找出FC_PSN上的与TESTMDM中编号不同,姓名不同,性别不同,出生日期不同,身份证号不同的记录,有什么更好的方法
这样查找的速度太慢
select employeeno,empname,gender,birthday,idcard_no from fc_psn f,testmdm m
where f.employeeno =m.fc_psn_id(+)
and f.empname =m.name_ch (+)
and f.gender =decode(m.sex,'男','1','女','2')(+)
and f.birthday =m.birthdate(+)
and f.idcard_no =m.idcard (+)
and m.fc_psn_id is null
from a, b
where a.id = b.id(+)
and a.name = b.name(+)
and a.sex = b.sex(+)
and b.id is null