Example: Correlated subquery in a select-list
Suppose that you want a list of all the departments, including the department name, number, and manager's name.
Department names and numbers are found in the CORPDATA.DEPARTMENT table. However, DEPARTMENT has only the manager's number, not the manager's name. To find the name of the manager for each department, find the employee number from the EMPLOYEE table that matches the manager number in the DEPARTMENT table and return the name for the row that matches. Only departments that currently have managers assigned are to be returned. Execute the following SQL statement:
SELECT DEPTNO, DEPTNAME, (SELECT FIRSTNME CONCAT ' ' CONCAT MIDINIT CONCAT ' ' CONCAT LASTNAME FROM EMPLOYEE X WHERE X.EMPNO = Y.MGRNO) AS MANAGER_NAME FROM DEPARTMENT Y WHERE MGRNO IS NOT NULLFor each row returned for DEPTNO and DEPTNAME, the system finds where EMPNO = MGRNO and returns the manager's name. The result table produced by the query has the following values.
Table 1. Result set for previous query DEPTNO DEPTNAME MANAGER_NAME A00 SPIFFY COMPUTER SERVICE DIV. CHRISTINE I HAAS B01 PLANNING MICHAEL L THOMPSON C01 INFORMATION CENTER SALLY A KWAN D11 MANUFACTURING SYSTEMS IRVING F STERN D21 ADMINISTRATION SYSTEMS EVA D PULASKI E01 SUPPORT SERVICES JOHN B GEYER E11 OPERATIONS EILEEN W HENDERSON E21 SOFTWARE SUPPORT THEODORE Q SPENSER
Parent topic:
Correlated subqueries