Databases

T01-006-05 Operador de conjuntos

Enunciado

En un ejemplo anterior hemos visto una forma de poder mostrar las direcciones que estaban en China ('CN') o en Japón ('JP').

SELECT STREET_ADDRESS, CITY
FROM HR.locations
WHERE COUNTRY_ID = 'CN' OR COUNTRY_ID = 'JP'

Utilizar OR para componer una expresión lógica en la que un mismo atributo puede tener una serie de valores es válido si la lista de valores es muy pequeña, como en el caso anterior, en la que únicamente tenemos 2 opciones.

Pero, 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'. La sentencia sería entonces mucho más larga:

SELECT STREET_ADDRESS, CITY, COUNTRY_ID
FROM HR.locations
WHERE COUNTRY_ID = 'IT' OR COUNTRY_ID = 'UK' OR COUNTRY_ID = 'DE' OR COUNTRY_ID = 'CH' OR COUNTRY_ID = 'NL'

En cambio, con el uso del operador de conjuntos IN se reduce mucho y se clarifica la sentencia anterior:

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

Ejercicio:

Muestra los empleados del esquema HR cuyo trabajo es alguno de los de la siguiente lista 'SA_MAN', 'SA_REP', 'MK_MAN', 'MK_REP'.

Ordena los resultados alfabéticamente por el apellido.

Recuerda: El resultado debe ser exactamente igual al que se muestra en el OUTPUT.

 

Tipo

SELECT

Solución


												
SELECT FIRST_NAME, LAST_NAME, JOB_ID FROM HR.employees WHERE JOB_ID IN ('SA_MAN', 'SA_REP', 'MK_MAN', 'MK_REP') ORDER BY LAST_NAME ASC

Prueba


											

Librerías (Onfly databases)