不是经理的员工名单

时间:2014-07-13 17:13:57

标签: 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)

8 个答案:

答案 0 :(得分:3)

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

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列中的值显示的行。

答案 1 :(得分:1)

使用oracle特定功能:

select Empno, Ename, Job, Sal from Emp
where CONNECT_BY_ISLEAF = 1
start with MGR is null
connect by prior Empno = MGR;

有关如何使用它的示例,请参阅http://sqlfiddle.com/#!4/858e0/3

但如果没有经理层级更容易:

SELECT Empno, Ename, Job, Sal FROM Emp WHERE MGR IS NOT NULL

答案 2 :(得分:0)

从emp a中选择* 哪里不存在 (从emp中选择1,其中manager_id = a.emp_id);

以上sql将找到所有不是经理的员工,并且存在具有更好性能但不在

中的功能

答案 3 :(得分:0)

检查以下内容:

SELECT E.LAST_NAME,E.EMPLOYEE_ID FROM EMPLOYEES EWHERE EMPLOYEE_ID not in 
   (SELECT MANAGER_ID FROM EMPLOYEES where MANAGER_ID is not null)

答案 4 :(得分:0)

SELECT * FROM employees
WHERE id <> managerid

答案 5 :(得分:0)

这是涵盖所有情况的最佳解决方案

select e.name
  from employees as e
  left join employees as m
    on e.id = m.managerId
 where m.managerId is null

答案 6 :(得分:0)

尝试此查询将起作用

选择Empno,Ename,Job,Sal 来自Emp 工作在哪里!='经理'

选择Empno,Ename,Job,Sal 来自Emp 工作不像“经理”的地方

答案 7 :(得分:0)

let audio = new Audio()

class AudioContainer extends Component {
    constructor (props) {
        super(props);
        this.state = {
            images: [],
            index: 0,
            checkedItems: new Map(),
            correct: false,
            isPlaying: false,
            error: false
        };

    }


onPlayHandler = () => {
        audio.src = this.props.data[this.state.index].audio
        audio.play();
        this.setState({
            isPlaying: true
        });
    };

    onPauseHandler = () => {
        audio.src = this.props.data[this.state.index].audio
        //let aud = new Audio(this.props.data[this.state.index].audio);
        audio.pause();
        //aud.setAttribute("ref", `${this.myRef}`);
        this.setState({
            isPlaying: false
        });
        //this.refs.audio.pause(); 
        //x.pause(); 
        //console.log(aud)
    };