解决方案 »
- 请教关于date排序的问题
- 数据库一张表,外键关联自身,在没有数据的情况下,如何添加第一条数据!
- oracle 表之间数据移动的问题
- ORACLE 9i 一台机器,想把数据放在C同时复制到D盘该怎么做能实现?
- [Oracle][ODBC][Ora]ORA-01013: 用户请求取消当前的操作
- 如何在数据库中查看加密的密码?
- 急急急!!!请教数据导入导出问题。
- 进程无法正常退出?
- 如何将EXCEL的数据导到ORACLE了相应的表里面啊?
- 大神求助Orcale Ogg java adapter 乱码问题【解决了发红包哈!】
- 最近,想修改一个朋友公司ORACLE的配置参数。
- Enterprise Manager Console
select *
from tableA f
where f.TYPE = '入职日'
and f.DATE <
(select min(f2.DATE)
from tableA f2
where f.NAME = f2.NAME
and f2.TYPE = '离职日');刚才想了一下,我是这样写的,不知道能不能优化。
另外一种思路select *
from tableA f
where f.TYPE = '入职日'
and exists
(select 1
from tableA f2
where f2.NAME = f.NAME
and f2.TYPE = '离职日'
and f2.DATE < f.DATE);
(
select 'JACK' namea,'生日' TYPEa,'1980' DATEa from dual union all
select 'JACK' namea,'入职日' TYPEa,'2000' DATEa from dual union all
select 'JACK' namea,'离职日' TYPEa,'2008' DATEa from dual union all
select 'TOM' namea,'生日' TYPEa,'1982' DATEa from dual union all
select 'TOM' namea,'入职日' TYPEa,'2013' DATEa from dual union all
select 'TOM' namea,'离职日' TYPEa,'2009' DATEa from dual union all
select 'SAM' namea,'生日' TYPEa,'1988' DATEa from dual union all
select 'SAM' namea,'入职日' TYPEa,'2006' DATEa from dual
)
select *
from (select tt.namea,
max(decode(TYPEa, '生日', DATEa, null)) as 生日,
max(decode(TYPEa, '入职日', DATEa, null)) as 入职日,
max(decode(TYPEa, '离职日', DATEa, null)) as 离职日
from A_CODE tt
group by tt.namea) TT
where TT.入职日 < TT.离职日