Sql 使用嵌套查询从同一个表中查找数据
我已经创建了一个表employee(ename、post、salary)。在这里,我需要找到与Arjun(ename)在同一岗位工作的所有员工 我上面的代码有什么问题我会这样做:Sql 使用嵌套查询从同一个表中查找数据,sql,oracle,Sql,Oracle,我已经创建了一个表employee(ename、post、salary)。在这里,我需要找到与Arjun(ename)在同一岗位工作的所有员工 我上面的代码有什么问题我会这样做: select ename from employee where post in (select post from employee where ename = 'Arjun') 我会这样做: select ename from employee where post in (select post from em
select ename
from employee
where post in (select post from employee where ename = 'Arjun')
我会这样做:
select ename
from employee
where post in (select post from employee where ename = 'Arjun')
考虑创建一个子查询,以生成可分配给主查询的结果:
select a.ename
from employee a
where a.post = (select sub.post
from employee sub
where sub.ename like 'A%n')
我不知道你为什么使用like
选项。。。如果你只想得到Arjun的名字,你应该写一个=
语句:
where sub.ename = 'Arjun'
此外,子查询应该只产生1行;否则Oracle将向您抛出“
ORA-01427:单行子查询返回多行”
”错误。请考虑创建一个子查询,以生成可分配给主查询的结果:
select a.ename
from employee a
where a.post = (select sub.post
from employee sub
where sub.ename like 'A%n')
我不知道你为什么使用like
选项。。。如果你只想得到Arjun的名字,你应该写一个=
语句:
where sub.ename = 'Arjun'
此外,子查询应该只产生1行;否则Oracle将抛出“
ORA-01427:单行子查询返回多行”
”错误。我想知道最后一个问题,比如你能解释一下我的代码错误吗?为什么我的代码错误?我想不起来了,谢谢。我想知道最后一个问题,比如你能解释一下我的代码错误吗?我想不起来了,谢谢