简单的说我要求3条结果的交集,但是如果结果为空,就不与它求交集。select bc.vc_branch_no, bc.vc_branch_name
from branch bc
where bc.c_branch_type = '1'
and bc.l_country = 0
intersect
select bp.vc_branch_no, bp.vc_branch_name
from branch bp
where bp.c_branch_type = '1'
and bp.l_province = 12345 intersect
select bt.vc_branch_no, bt.vc_branch_name
from branch bt
where bt.c_branch_type = '1'
and bt.l_city = 0;比如这样 如果第3个根据城市来查,没有结果,那就取省的结果。如果城市有结果那就已城市的结果集为准。
不知道能不能一条SQL搞定,是一条哦。
from branch bc
where bc.c_branch_type = '1'
and bc.l_country = 0
intersect
select bp.vc_branch_no, bp.vc_branch_name
from branch bp
where bp.c_branch_type = '1'
and bp.l_province = 12345 intersect
select bt.vc_branch_no, bt.vc_branch_name
from branch bt
where bt.c_branch_type = '1'
and bt.l_city = 0;比如这样 如果第3个根据城市来查,没有结果,那就取省的结果。如果城市有结果那就已城市的结果集为准。
不知道能不能一条SQL搞定,是一条哦。
解决方案 »
- (+)这玩意怎么用啊?表示好像刚学oracle似地,之前算是白混了
- oracle存储过程中出错?
- 触发器高手请进,如何写这样的触发器
- 求助:关于ORACLE数据库介质恢复问题
- 新建一个用户,怎么才能够能够让他有权限登陆(我的可用分只有十分了,不好意思)
- OraclePreparedStatement的问题(紧急求助)
- 在OMS中使用导出,为什么出现'验证错误',请高手指教
- win2000 server family 在安装Oracle8.1.6时出错!
- 安装oracle9i时告诉我“TNS 包写入程序失败”是怎么回事?
- [疑难解答linux&oracle]linux下通过OCI连接oracle数据库,在OCIServerAttach里卡很久,最后报ORA-12170错误。在线等
- 改一条带括号的update
- 按月统计数据,不满一月的按星期统计的sql问题
先判断是否为空 然后再intersect
create table 问问题请先造数据 (省 varchar(10), 市 varchar(10));
insert into 问问题请先造数据 values
('广东','广州'),
('广东','珠海'),
('云南','大理'),
('云南','昆明');commit;select *
from (
select 省, 市
, (case when 市 = '广州' then 1 else 2 end) LVL
, min(case when 市 = '广州' then 1 else 2 end)
over (partition by 省) MIN_LVL
from 问问题请先造数据
where (省 = '广东' or 市 = '广州')
) a
where LVL = MIN_LVL
; select *
from (
select 省, 市
, (case when 市 = '惠州' then 1 else 2 end) LVL
, min(case when 市 = '惠州' then 1 else 2 end)
over (partition by 省) MIN_LVL
from 问问题请先造数据
where (省 = '广东' or 市 = '惠州')
) a
where LVL = MIN_LVL
;