Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Select usando a % não funciona

Olá, estou acompanhando o curso de SQL onde a instrutora orienta fazer esse filtro: SELECT * FROM Treinamento WHERE (curso LIKE 'O direito%' AND instituicao = 'da Rocha') OR (curso LIKE 'O conforto%' AND instituicao = 'das Neves');

Porém, ao realizar um teste usando o operador lógico também na instituição o SQL não filtra nada, segue a forma que usei: SELECT * FROM Treinamento WHERE (curso LIKE 'O direito%' AND instituicao = '%Rocha') OR (curso LIKE 'O conforto%' AND instituicao = '%Neves');

Sabe me dizer onde estou errando ou o porque isso acontece? Obrigado

2 respostas

Olá. Acredito que seja um erro de sintaxe. Quando você faz a consulta com %Rocha, você deve usar o LIKE e no seu exemplo está usando =. No exemplo da professora, ela usa o =, porém ela não usa o %.

solução!

Oi Rodrigo,

O problema está no uso incorreto do operador LIKE com o caractere curinga % na coluna instituicao. O % é usado para buscar padrões que contenham uma sequência de caracteres, e não para encontrar valores que terminem com uma sequência específica.

No seu primeiro exemplo, instituicao = 'da Rocha' busca exatamente a string "da Rocha". Já no segundo exemplo, com instituicao = '%Rocha', você está buscando instituições que terminem com "Rocha", e não que sejam "da Rocha".

Para corrigir, você precisa usar o operador = para buscar um valor exato, como no exemplo original do curso.

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

Caso você queira buscar instituições que contenham "Rocha" em qualquer parte do texto, você poderia usar:

SELECT * FROM Treinamento 
WHERE (curso LIKE 'O direito%' AND instituicao LIKE '%Rocha%')
OR (curso LIKE 'O conforto%' AND instituicao LIKE '%Neves%');

👍 💪 Veja mais: Documentação do LIKE

Continue praticando e explorando as possibilidades do SQL! 🤔

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓