sql - 非经理员工名单

标签 sql oracle

我想提取不是经理的员工名单...

如果您有更好的查询,请查看以下两个查询帖子...

查询 1:

SELECT Empno, Ename, Job, Sal
FROM Emp
WHERE Empno NOT IN (SELECT NVL(MGR,0) FROM Emp)

查询 2:

SELECT Empno, Ename, Job, Sal
FROM Emp
WHERE Empno NOT IN (SELECT DISTINCT MGR FROM Emp WHERE MGR IS NOT NULL)

最佳答案

这可能运行得更快,具体取决于索引的字段:

select x.empno, x.ename, x.job, x.sal
  from emp x
  left join emp y
    on x.empno = y.mgr
 where y.mgr is null

对同一个表使用外连接,并过滤 empno 从未作为值出现在表的 mgr 列中的行。

关于sql - 非经理员工名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725228/

相关文章:

c# - Oracle Coherence 是否支持批量删除操作?

sql - 从一列嵌套表中选择 SQL

sql - 计算列 sql 中的寄存器

php - 带有 PHP 变量问题的 MySQL 查询

sql - 相关子查询,oracle sql

sql - “ORA-00922: missing or invalid option” 尝试插入表时

sql - 在 SQL Server 2000 中查找存储过程名称及其内容

python - 使用python在PostgreSQL中选择变量

sql - 使用 Sqlite 将带有自动生成 id 字段的记录插入异步环境中的多个相关表中?

sql - 如何在oracle sql的WHERE IN子句中传递变量?