1
resposta

[Dúvida] Dúvida

SELECT * FROM TabelaClientes WHERE datanascimento < '1990%' || estado = 'SP';

Boa tarde! Tudo bem?
Não retornou nada.

1 resposta

Ei! Tudo bem, Pedro?

Isso aconteceu por alguns motivos, por exemplo:

  • O operador || não funciona para funcionar para a combinação de condições, ele é um concatenador de strings. Ou seja, se você tem A || B, resultará em AB.
    • Nesse caso, o uso ideal é o OR, que serve para combinar essas condições em uma cláusula WHERE.
  • O uso do % para buscar a data não é apropriado para usar com operadores >e <, ele é específico para o operador LIKE. O % representa qualquer sequência de caraceteres em um padrão de busca. Ou seja, se você tem nome LIKE 'Jo%', será retornado João, José, etc.
    • Nesse caso se é recomendado usar a data completa para garantir precisão.

Veja abaixo sua consulta adaptada:

SELECT * FROM TabelaClientes WHERE datanascimento < '1990-01-01' OR estado = 'SP';

Retorno: imagem.

E outra forma de fazer retornando apenas Nome, Data de nascimento e Estado, basta executar o código abaixo:

SELECT Nome, DataNascimento, Estado
FROM TabelaClientes
WHERE DataNascimento < '1990-01-01' OR Estado = 'SP';

Retorno: imagem.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Pedro!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!