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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!