Bóson Treinamentos em Ciência e Tecnologia

Como usar os operadores IN e NOT IN – Filtros de Múltiplas Condições – SQL Server

Operadores IN e NOT IN – Filtros de Múltiplas Condições no Microsoft SQL Server

O operador IN determina se um determinado valor corresponde a qualquer valor discriminado em uma subconsulta ou lista.
Retorna sempre TRUE ou FALSE.

Esse operador pode substituir o operador lógico OR em consultas com muitas condições, tornando o código mais simples e legível.

Sintaxe:

WHERE Valor (NOT) IN (subconsulta | lista)

Exemplos

1. Retornar todos as colunas da tabela de livros, mas apenas dos livros publicados pelas editoras de IDs 1, 2 e 5:

SELECT * FROM tbl_livros 
WHERE IdEditora IN (1, 2, 5);

2. Retornar nomes de livros e seus respectivos assuntos, dos livros cujo assunto seja Aventura, Eletrônica ou Matemática:

SELECT L.NomeLivro, A.NomeAssunto
FROM tbl_livros L
INNER JOIN tbl_assuntos A
ON L.IdAssunto = A.IdAssunto
WHERE A.NomeAssunto IN ('Aventura', 'Eletrônica', 'Matemática');

3. Retornar nomes dos livros, suas datas de publicação e e id das editoras, de todas as editoras EXCETO das editoras de ids iguais a 2 ou 4:

SELECT NomeLivro, DataPub, IdEditora
FROM tbl_livros 
WHERE IdEditora NOT IN (2, 4);

4. Retornar os nomes dos livros e seus respectivos autores, dos livros publicados pelas editoras Wiley, Bookman e Microsoft Press (usando tabela associativa tbl_livros_autores):

SELECT L.NomeLivro, A.NomeAutor, E.NomeEditora
FROM tbl_livros_autores LA
INNER JOIN tbl_autores A
 ON LA.IdAutor = A.IdAutor
INNER JOIN tbl_livros L
 ON LA.IdLivro = L.IdLivro
INNER JOIN tbl_editoras E
 ON L.IdEditora = E.IdEditora
WHERE E.NomeEditora IN ('Wiley', 'Bookman', 'Microsoft Press');

Assista a um vídeo sobre o assunto para aprender mais e tirar suas dúvidas:

Sair da versão mobile