Databases

T01-011-01 Subconsultas

Enunciado

Subconsultas en la cláusula WHERE
que devuelven valores únicos.

Otro operador que podemos utilizar con subconsultas que devuelven conjuntos de valores es IN. Este operador ya lo utilizamos como operador de conjuntos. Lo recordamos ahora:

... que ocurriría si la lista de posibles valores se incrementara, por ejemplo a todos los de Europa. Esa lista debería incluir, al menos: 'IT', 'UK', 'DE', 'CH', 'NL'...:

SELECT STREET_ADDRESS, CITY, COUNTRY_ID
FROM HR.locations
WHERE COUNTRY_ID IN ('IT', 'UK', 'DE', 'CH', 'NL')

Como en aquel momento no conocíamos las subconsultas, tuvimos que acudir a la tabla HR.countries a buscar manualmente los códigos de los países que pertenecen a 'Europe'. Pero, esta búsqueda previa la podemos enviar como subconsulta:

SELECT STREET_ADDRESS, CITY, COUNTRY_ID
FROM HR.locations
WHERE COUNTRY_ID IN (
    SELECT COUNTRY_ID
    FROM HR.countries JOIN HR.regions USING(REGION_ID)
    WHERE REGION_NAME = 'Europe'
)

STREET_ADDRESS CITY COUNTRY_ID
20 Rue des Corps-Saints Geneva CH
Murtenstrasse 921 Bern CH
Schwanthalerstr. 7031 Munich DE
1297 Via Cola di Rie Roma IT
... ... ...

 

Ejercicio:

Utilizando una subconsulta, muestra los empleados del esquema HR cuyo trabajo contiene la palabra 'Representative'.

Ordena los resultados alfabéticamente por el apellido.

Tipo

SELECT

Solución


												
SELECT FIRST_NAME, LAST_NAME, JOB_ID FROM HR.employees WHERE JOB_ID IN ( SELECT JOB_ID FROM HR.jobs WHERE JOB_TITLE LIKE '%Representative%' ) ORDER BY LAST_NAME ASC

Prueba


											

Librerías (Onfly databases)