oracle 一个结果集是否在另一结果集中存在

如表A,表B 中各只有一列为Name
表A
zhang
liu
wang

表B
zhang
liu
wang
chen
huang

如何判断A表中的结果集在B表中都存在.全部存在返回1,只要A表有一项在B表中不存在,就返回0
谢谢大家,我采纳方案(最优+最早)总结一下:
减集:记录数=0,全部存在;>0,至少一个不在.符合我要求.
交集:记录数=0,全部不存在;>0,至少一个存在,也可实现,但需加工,只有当集合运算后的记录数=表a记录数时,才能确定全部存在

第1个回答  2008-11-28
select decode(sign(count(*)),1,0,0,1) as fieldname from (
select * from a
minus
select * from b)

一楼的方法很好
巧秒的利用了集合相减
把B从A中减掉
如果有剩余说明两a有不在B中的记录
反之则没有
第2个回答  2008-11-28
select (case (select name from a表) when (select name from b表) then '1' else '0' end) as result from b表
第3个回答  2008-11-28
select decode(sign(count(*)),1,0,0,1) from (
select * from a
minus
select * from b)

你如果想一个语句实现只好这样咯~~本回答被提问者采纳
第4个回答  2008-11-28
使用合并查询的INTERSECT(取交集),我想不用我多解释下面该怎么做了吧。
select A.NAME from A
INTERSECT
select B.NAME from B;
相似回答