为了从雇用日期中获得最大体验,SQL oracle查询将是什么?

为了从雇用日期中获得最大体验,SQL oracle查询将是什么?,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,必须找到最有经验的员工 select empno, ename, from emp where max(months_between(SYSDATE,hiredate)) 我的软件在sysdate上出现错误,请任何人验证这是否正确。您可以使用: select e.* from emp e order by hiredate asc fetch first 1 row only; 如果要复制,请添加带领带的 以上内容在Oracle 12C+中起作用。在早期版本中,您需要一个子查询: sele

必须找到最有经验的员工

select empno, ename, 
from emp
where max(months_between(SYSDATE,hiredate))
我的软件在sysdate上出现错误,请任何人验证这是否正确。

您可以使用:

select e.*
from emp e
order by hiredate asc
fetch first 1 row only;
如果要复制,请添加带领带的

以上内容在Oracle 12C+中起作用。在早期版本中,您需要一个子查询:

select e.*
from (select e.*,
             row_number() over (order by hiredate) as seqnum
      from emp e
     ) e
where seqnum = 1;
您可以使用:

select e.*
from emp e
order by hiredate asc
fetch first 1 row only;
如果要复制,请添加带领带的

以上内容在Oracle 12C+中起作用。在早期版本中,您需要一个子查询:

select e.*
from (select e.*,
             row_number() over (order by hiredate) as seqnum
      from emp e
     ) e
where seqnum = 1;

使用
不存在

select e.empno, e.ename 
from emp e
where not exists (select 1 from emp where hiredate < e.hiredate)
或者修改查询的
WHERE
子句,如下所示:

select empno, ename 
from emp 
where months_between(SYSDATE, hiredate) = (
  select max(months_between(SYSDATE, hiredate)) 
  from emp
)

使用
不存在

select e.empno, e.ename 
from emp e
where not exists (select 1 from emp where hiredate < e.hiredate)
或者修改查询的
WHERE
子句,如下所示:

select empno, ename 
from emp 
where months_between(SYSDATE, hiredate) = (
  select max(months_between(SYSDATE, hiredate)) 
  from emp
)