Consulta case insensitive no SQL

5 respostas
B

Alguém sabe como que eu faço pra fazer uma consulta no SQL que não seja case sensitive.

eu preciso consultar numa tabela pessoas que o nome comece com uma letra. Estou fazendo mais ou menos assim:

select * from contato where nome like 'A%'

Mas eu queria que a consulta fosse válida para letras minúsculas também

Grato

detalhes: o BD é Postgres

5 Respostas

B

Se for no sql server use:

select * from clientes where upper(nome) like '%'+upper('MaRcIa')+'%'

Se for outro db procure a função que transforma todas as letras em minúsculas . O contrário tbm é válido…

Um abraço kra… :wink:

R

Upper também vale pro Oracle.

Na maioria dos bancos de dados você pode configurar se ele vai ser case insensitive.

No SQLServer você define o esquema na instalação.

K

“black_fire”:
Se for no sql server use:

select * from clientes where upper(nome) like '%'+upper('MaRcIa')+'%'

Se for outro db procure a função que transforma todas as letras em minúsculas .

SQL Server? Naaao… :mrgreen:

Para minusculas, a funcao seria LOWER() - para maiusculas sim UPPER().

No PostgreSQL o ILIKE funciona como um LIKE “case-insensitive” (alem das opcoes de uso de expressoes regulares nas comparacoes). Mais ai voce fica restrito ao PostgreSQL. :frowning:

Marcio Kuchma

R

Tá certo! Mas da na mesma, já que tanto o campo, como a string de pesquisa foram convertidas para maiusculas.

K

Sim, sim, claro. Funciona perfeitamente - tanto com uma, quanto com outra opcao. :smiley:

Marcio Kuchma

Criado 17 de outubro de 2003
Ultima resposta 17 de out. de 2003
Respostas 5
Participantes 4