0
0
SQLquery~20 mins

Scalar subquery in SELECT in SQL - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Scalar Subquery Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
Output of scalar subquery in SELECT clause
Given the tables Employees and Departments, what is the output of the following query?

SELECT e.EmployeeID, e.Name, (SELECT d.DepartmentName FROM Departments d WHERE d.DepartmentID = e.DepartmentID) AS DeptName FROM Employees e WHERE e.EmployeeID = 3;
SQL
SELECT e.EmployeeID, e.Name, (SELECT d.DepartmentName FROM Departments d WHERE d.DepartmentID = e.DepartmentID) AS DeptName FROM Employees e WHERE e.EmployeeID = 3;
A[]
B[{"EmployeeID": 3, "Name": "Alice", "DeptName": null}]
C[{"EmployeeID": 3, "Name": "Alice", "DeptName": "Sales"}]
DSyntaxError
Attempts:
2 left
💡 Hint
Think about how the scalar subquery returns a single value for each row in Employees.
🧠 Conceptual
intermediate
1:30remaining
Understanding scalar subquery behavior
What happens if a scalar subquery in the SELECT clause returns more than one row?
AThe query runs successfully and returns the first value only.
BThe query raises an error because scalar subqueries must return exactly one value.
CThe query concatenates all returned values into a string.
DThe query returns NULL for that column.
Attempts:
2 left
💡 Hint
Scalar means a single value, not multiple.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in scalar subquery usage
Which option contains a syntax error in using a scalar subquery in the SELECT clause?
SQL
SELECT e.EmployeeID, (SELECT DepartmentName FROM Departments WHERE DepartmentID = e.DepartmentID) AS DeptName FROM Employees e;
ASELECT e.EmployeeID, (SELECT DepartmentName FROM Departments WHERE DepartmentID = e.DepartmentID) DeptName FROM Employees;
BSELECT e.EmployeeID, (SELECT DepartmentName FROM Departments d WHERE d.DepartmentID = e.DepartmentID) DeptName FROM Employees e;
CSELECT e.EmployeeID, (SELECT DepartmentName FROM Departments WHERE DepartmentID = e.DepartmentID) AS DeptName FROM Employees e;
DSELECT e.EmployeeID, (SELECT DepartmentName FROM Departments WHERE DepartmentID = e.DepartmentID) AS DeptName FROM Employees;
Attempts:
2 left
💡 Hint
Check if table aliases are consistent and if all tables are referenced properly.
optimization
advanced
2:30remaining
Optimizing scalar subquery in SELECT
Which query is more efficient when retrieving employee names with their department names?
ASELECT e.Name, d.DepartmentName FROM Employees e JOIN Departments d ON e.DepartmentID = d.DepartmentID;
BSELECT e.Name, (SELECT d.DepartmentName FROM Departments d WHERE d.DepartmentID = e.DepartmentID) AS DeptName FROM Employees e;
CSELECT e.Name, d.DepartmentName FROM Employees e, Departments d WHERE e.DepartmentID = d.DepartmentID;
DSELECT e.Name, (SELECT DepartmentName FROM Departments WHERE DepartmentID = e.DepartmentID LIMIT 1) AS DeptName FROM Employees e;
Attempts:
2 left
💡 Hint
Consider how joins and subqueries affect performance.
🔧 Debug
expert
3:00remaining
Debugging unexpected NULL from scalar subquery
Given the query:
SELECT e.EmployeeID, e.Name, (SELECT d.DepartmentName FROM Departments d WHERE d.DepartmentID = e.DepartmentID) AS DeptName FROM Employees e;

Why might DeptName be NULL for some employees even though their DepartmentID exists in Departments?
AThe scalar subquery returns multiple rows for some employees, causing NULL to be returned.
BThe scalar subquery is not allowed in SELECT clause and returns NULL by default.
CThe Departments table has duplicate DepartmentID values causing the subquery to fail silently.
DSome DepartmentID values in Employees do not exactly match any DepartmentID in Departments due to data type mismatch or trailing spaces.
Attempts:
2 left
💡 Hint
Check data consistency and matching conditions between tables.