使用嵌套查询从同一表中查找数据

时间:2015-07-15 18:30:24

标签: sql oracle

我创建了一个表员工(ename,post,salary)。在这里,我需要找到与Arjun(ename)在同一职位上工作的所有员工。

select a.ename(select b.post from employee b where b.ename like 'A%n') from employee a

上面的代码有什么问题

2 个答案:

答案 0 :(得分:0)

我会这样做:

select ename
from employee
where post in (select post from employee where ename = 'Arjun')

答案 1 :(得分:0)

考虑创建一个子查询,该子查询产生一个可以分配给主查询的结果:

select a.ename
from employee a
where a.post = (select sub.post
                from employee sub
                where sub.ename like 'A%n')

我不确定你为什么使用like选项...如果你想成为sur你只得到 Arjun 这个名字你应该写一个=声明:

where sub.ename = 'Arjun'

此外,子查询应该只产生一行;否则Oracle会抛出“ORA-01427: single-row subquery returns more than one row”错误。

相关问题