Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Dúvida de informações dentro do parentes

Boa tarde, tudo bem?

Caso eu precise colocar um parentes dentro de outro, utilizando o IN, é possível? Ex: se eu quiser saber se é da instituição da Rocha ou da Silva, ficaria dessa forma? ou deveria usar um outro símbolo, como colchete? Está certo a sintaxe abaixo?

SELECT * FROM Treinamento
WHERE (curso LIKE 'O direito%' IN ('da Rocha','da Silva')
OR (curso like 'O Conforto%' and instituicao = 'das Neves');

1 resposta

Ei, Vinicius. Tudo bem?

O operador IN é utilizado para comparar o valor de uma coluna com uma lista de valores. No seu exemplo, o LIKE retorna um resultado verdadeiro ou falso, então ele não pode ser usado diretamente com IN.

Se a ideia é buscar cursos que começam com "O direito" e cuja instituição seja "da Rocha" ou "da Silva", a consulta pode ser escrita assim:

SELECT * FROM Treinamento
WHERE curso LIKE 'O direito%'
AND instituicao IN ('da Rocha', 'da Silva')
OR (curso LIKE 'O Conforto%' AND instituicao = 'das Neves');

Nesse exemplo, o operador IN verifica se o valor da coluna instituicao corresponde a qualquer um dos valores informados na lista.

Caso queira deixar a lógica mais explícita e evitar ambiguidades na precedência dos operadores AND e OR, também é uma boa prática agrupar as condições com parênteses:

SELECT * FROM Treinamento
WHERE (
    curso LIKE 'O direito%'
    AND instituicao IN ('da Rocha', 'da Silva')
)
OR (
    curso LIKE 'O Conforto%'
    AND instituicao = 'das Neves'
);

Essa versão facilita a leitura e garante que cada conjunto de condições seja avaliado da forma esperada.

Importante: não é necessário utilizar colchetes nesse caso. Em SQL, os parênteses já são o recurso adequado para agrupar expressões lógicas e para definir a lista de valores do operador IN.

Conteúdos para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!