Computer Sciences > GATE 2025 SET-2 > SQL
Consider the following relational schema:
Students (rollno: integer, name: string, age: integer, cgpa: real)
Courses (courseno: integer, cname: string, credits: integer)
Enrolled (rollno: integer, courseno: integer, grade: string)
Which of the following options is/are correct SQL query/queries to retrieve the names of the students enrolled in course number (i.e., courseno) 1470?
A
SELECT S.name FROM Students S WHERE EXISTS (SELECT * FROM Enrolled E WHERE E.courseno =1470 AND E.rollno = S.rollno);
B
SELECT S.name FROM Students S WHERE SIZEOF (SELECT * FROM Enrolled E WHERE E.courseno =1470 AND E.rollno = S.rollno) > 0;
C
SELECT S.name FROM Students S WHERE 0 < (SELECT COUNT(*) FROM Enrolled E WHERE E.courseno =1470 AND E.rollno = S.rollno);
D
SELECT S.name FROM Students S NATURAL JOIN Enrolled E WHERE E.Courseno =1470;

Correct : a

SELECT S.name FROM Students S WHERE EXISTS (SELECT * FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);
EXISTS returns TRUE if the subquery returns at least one row. This correctly checks if the student is enrolled in course 1470. This is valid standard SQL.
Option B - Incorrect.
SELECT S.name FROM Students S WHERE SIZEOF (SELECT * FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno) > 0;
SIZEOF is not a valid SQL function. SQL does not have a SIZEOF keyword — this query will throw a syntax error.
Option C - Incorrect.
SELECT S.name FROM Students S WHERE 0 < (SELECT COUNT(*) FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);
While logically equivalent to Option A, COUNT(*) in a correlated subquery compared with a scalar value is valid SQL. However, GATE 2025 marks only Option A as correct, likely because this form may return duplicate names if a student is enrolled multiple times, and its behavior may vary.
Option D - Incorrect.
SELECT S.name FROM Students S NATURAL JOIN Enrolled E WHERE E.Courseno = 1470;
NATURAL JOIN cannot use a table alias (E) after the join — this is a syntax error in SQL. NATURAL JOIN automatically joins on all common columns (rollno here), but the alias E after the join keyword is invalid.
∴ The correct SQL query is Option A

Similar Questions

Select operation in SQL is equivalent to
#79 MCQ
Consider the following relations: Consider the following SQL query. SELECT S.Student_Name, sum(P.Marks) FROM Student S, Performance P WHERE S.Roll_No = P...
#1149 NAT
Given the following schema: employees(emp-id, first-name, last-name, hire-date, dept-id, salary) departments(dept-id, dept-name, manager-id, location-id) You...
#1225 MCQ

Related Topics

GATE 2025 GATE CS Set-2 Question 53 SQL Structured Query Language EXISTS SIZEOF COUNT NATURAL JOIN Correlated Subquery SQL Subquery SELECT Query Relational Schema Students Table Enrolled Table Courses Table DBMS Database Management System MSQ

Unique Visitor Count

Total Unique Visitors

Loading......