提取与值相关的数据,但排除值本身
Extracting Data Related to a Value, but Excluding the Value Itself
所以我有一个日期 table 的员工,我想编写一个查询来提示用户员工的姓氏。然后查询显示与用户提供姓名的员工(不包括该员工)在同一部门的任何员工的姓氏和雇用日期。例如,如果我输入 Smith,查询将查找与 Smith 一起工作的所有员工,但不包括 Smith 本人。
到目前为止我写的代码是:
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
and e.last_name <> initcap('&l_name');
但是,当我 运行 它时,此代码不会提示我输入任何姓氏,它会自动显示单个姓氏、员工 ID、部门 ID 和雇用日期。有人可以帮忙吗?
在 Oracle 中您可以使用减号(从第一个结果集减去第二个 select 的结果集)
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
minus
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees
where last_name = initcap('&l_name')
好吧,多想了几次,我解决了:
select e.employee_id, e.last_name, e.department_id
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
and e.last_name <> initcap('&l_name');
此外,事实证明我不需要显示雇用日期。
所以我有一个日期 table 的员工,我想编写一个查询来提示用户员工的姓氏。然后查询显示与用户提供姓名的员工(不包括该员工)在同一部门的任何员工的姓氏和雇用日期。例如,如果我输入 Smith,查询将查找与 Smith 一起工作的所有员工,但不包括 Smith 本人。
到目前为止我写的代码是:
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
and e.last_name <> initcap('&l_name');
但是,当我 运行 它时,此代码不会提示我输入任何姓氏,它会自动显示单个姓氏、员工 ID、部门 ID 和雇用日期。有人可以帮忙吗?
在 Oracle 中您可以使用减号(从第一个结果集减去第二个 select 的结果集)
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
minus
select e.employee_id, e.last_name, e.department_id, e.hire_date
from employees
where last_name = initcap('&l_name')
好吧,多想了几次,我解决了:
select e.employee_id, e.last_name, e.department_id
from employees e
where e.department_id = (select department_id
from employees
where last_name = initcap('&l_name'))
and e.last_name <> initcap('&l_name');
此外,事实证明我不需要显示雇用日期。