Clàusula SQL WHERE IN

Clausula Sql Where In



En SQL, podem utilitzar la clàusula WHERE IN per filtrar els resultats en una base de dades determinada. La clàusula WHERE IN ens permet seleccionar les files d'una base de dades determinada que coincideixen amb un o més dels valors especificats d'una llista determinada.

En aquest tutorial, explorarem la clàusula WHERE IN per descobrir com la podem utilitzar per filtrar els resultats d'una taula o conjunt de resultats determinats.

Clàusula SQL WHERE IN

A continuació es mostra la sintaxi bàsica de la clàusula WHERE IN en SQL:







SELECCIONA columna1, columna2,...
FROM nom_taula
ON nom_columna IN (valor1, valor2, ...);

Comencem amb una instrucció bàsica 'seleccionar' seguida de les columnes que volem incloure al conjunt de resultats.



A continuació, especifiquem la taula de la qual volem recuperar els resultats. Finalment, especifiquem la condició del filtre mitjançant la clàusula WHERE seguida del nom de la columna sobre la qual volem filtrar. Després de la clàusula IN, especifiquem una llista de valors que volem utilitzar per filtrar.



Exemple 1: filtreu un únic resultat

Per demostrar millor com utilitzar la clàusula WHERE IN, mirem un exemple. Considereu la taula 'pel·lícula' de la base de dades de mostra de Sakila.





Suposem que volem recuperar totes les pel·lícules amb una qualificació de PG o PG-13. Podem utilitzar la clàusula WHERE IN de la següent manera:

SELECT title, release_year, rating
DEL cinema
WHERE rating IN ('PG');

En aquest cas, proporcionem una llista d'un sol valor que volem recuperar a la clàusula IN.



Exemple 2: filtre diversos valors

També podem especificar més d'un element a la llista de valors. Per exemple, per recuperar les pel·lícules amb una llista amb una qualificació de PG i PG-13, podem executar la consulta de la següent manera:

SELECT title, release_year, rating
DEL cinema
WHERE rating IN ('PG', 'PG-13');

La sortida resultant és la següent:

Exemple 3: filtre amb subconsulta

També podem utilitzar WHERE IN en una subconsulta que ens permet filtrar els resultats d'un conjunt de resultats determinat.

Suposem que volem filtrar les pel·lícules en funció de l'idioma. Per exemple, per recuperar les pel·lícules en els idiomes anglès i japonès, podem utilitzar WHERE IN dins d'una subconsulta de la manera següent:

SELECT title, release_year, rating
DE la pel·lícula f
WHERE language_id IN (
SELECT language_id
DE L'idioma
WHERE name IN ('anglès', 'japonès')
);

En aquest exemple, creem una subconsulta que recupera els valors 'language_id' per als idiomes anglès i japonès de la taula 'idiomes'. A la consulta principal, seleccionem les pel·lícules en funció dels valors 'language_id' resultants.

Conclusió

En aquesta publicació, hem après a treballar amb la clàusula WHERE IN a SQL per filtrar els resultats que coincideixen amb un únic o diversos valors en una llista determinada.