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