【发布时间】:2014-06-27 04:57:15
【问题描述】:
下面是显示员工“Jack”入职后已入职员工详细信息的代码
所有信息都在一个表中。
我的查询:
select e.employee_name, e.hiredate
from employees e
where e.employee_hiredate > jack.hiredate;
【问题讨论】:
下面是显示员工“Jack”入职后已入职员工详细信息的代码
所有信息都在一个表中。
我的查询:
select e.employee_name, e.hiredate
from employees e
where e.employee_hiredate > jack.hiredate;
【问题讨论】:
要获得您的“杰克”表,您只需要加入:
select e.employee_name, e.hiredate
from employees e
join employees jack on jack.employee_name = 'Jack'
where e.employee_hiredate > jack.hiredate;
您也可以使用子查询:
select e.employee_name, e.hiredate
from employees e
where e.employee_hiredate > (select hiredate from employees where employee_name = 'Jack');
This article 可能会更好地解释连接是如何工作的,this article 会解释一下子查询。
【讨论】:
Select *
from employees e
where convert(date,e.employee_hiredate) > (select convert(date,e.employee_hiredate)
from employees
where employee = 'jack'
)
【讨论】:
由于您要选择仅与特定员工比较的记录,您可以使用子查询。
在 Oracle 中,您可能可以执行以下操作:
select e.employee_name, e.hiredate
from employees e
where TRUNC(e.employee_hiredate) > (SELECT TRUNC(HIREDATE) FROM EMPLOYEES WHERE EMPLOYEE_NAME = 'Jack');
【讨论】: