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:




Escreva um comentário