单行子查询 returns 在 HR 模式中的 oracle 中多于一行
single-row subquery returns more than one row in oracle in HR schema
select employee_id, first_name, job_id, salary
from employees where salary < ( select SALARY
FROM EMPLOYEES
WHERE JOB_ID='IT_PROG');
我发现了如下错误:
ORA-01427: single-row subquery returns more than one row
看起来有“很多”员工job_id = 'IT_PROG'
。在这种情况下,子查询 return 的“多行”和您的查询会导致错误。
这取决于你想在这种情况下做什么;例如,对于工资低于 IT_PROG
的最低工资的员工,您可能想要 return 行,因此将是
SELECT employee_id,
first_name,
job_id,
salary
FROM employees
WHERE salary < (SELECT MIN (SALARY) --> note MIN function here
FROM EMPLOYEES
WHERE JOB_ID = 'IT_PROG');
select employee_id, first_name, job_id, salary
from employees where salary < ( select SALARY
FROM EMPLOYEES
WHERE JOB_ID='IT_PROG');
我发现了如下错误:
ORA-01427: single-row subquery returns more than one row
看起来有“很多”员工job_id = 'IT_PROG'
。在这种情况下,子查询 return 的“多行”和您的查询会导致错误。
这取决于你想在这种情况下做什么;例如,对于工资低于 IT_PROG
的最低工资的员工,您可能想要 return 行,因此将是
SELECT employee_id,
first_name,
job_id,
salary
FROM employees
WHERE salary < (SELECT MIN (SALARY) --> note MIN function here
FROM EMPLOYEES
WHERE JOB_ID = 'IT_PROG');