Oracle Database 11g: SQL Fundamentals I — Question 14
Evaluate this SQL statement:
SELECT e.emp_name, d.dept_name -
FROM employees e -
JOIN departments d -
USING (department_id)
WHERE d.department_id NOT IN (10,40)
ORDER BY dept_name;
The statement fails when executed. Which change fixes the error?
Answer options
- A. remove the ORDER BY clause
- B. remove the table alias prefix from the WHERE clause
- C. remove the table alias from the SELECT clause
- D. prefix the column in the USING clause with the table alias
- E. prefix the column in the ORDER BY clause with the table alias
- F. replace the condition"d.department_id NOT IN (10,40)"in the WHERE clause with"d.department_id <> 10 AND d.department_id <> 40"
Correct answer: B
Explanation
The correct answer is B because the SQL standard allows using the column without its table alias in the WHERE clause when using the USING clause. The other options do not address the core issue of the aliasing in the WHERE clause and will not fix the execution error.