必须找到最有经验的员工。
select empno, ename, from emp where max(months_between(SYSDATE,hiredate))
我的软件在sysdate上出现错误,所以请任何人验证这是否正确。
wb1gzix01#
使用 NOT EXISTS :
NOT EXISTS
select e.empno, e.ename from emp e where not exists (select 1 from emp where hiredate < e.hiredate)
或:
select empno, ename from emp where hiredate = (select min(hiredate) from emp)
或修改 WHERE 你的问题是这样的:
WHERE
select empno, ename from emp where months_between(SYSDATE, hiredate) = ( select max(months_between(SYSDATE, hiredate)) from emp )
rsaldnfx2#
您可以使用:
select e.* from emp e order by hiredate asc fetch first 1 row only;
如果你想复制,那就添加 with ties .以上在oracle12c+中工作。在早期版本中,您需要一个子查询:
with ties
select e.* from (select e.*, row_number() over (order by hiredate) as seqnum from emp e ) e where seqnum = 1;
2条答案
按热度按时间wb1gzix01#
使用
NOT EXISTS
:或:
或修改
WHERE
你的问题是这样的:rsaldnfx2#
您可以使用:
如果你想复制,那就添加
with ties
.以上在oracle12c+中工作。在早期版本中,您需要一个子查询: