PDA

Ver la Versión Completa : Buscar texto en mayusculas y minusculas (SQL).


Tecnic2
20-04-2005, 10:54:12
Hola a todos, a ver si me podeis solucionar éste problema trivial que tengo:

En una base de datos puede aparecer un texto en mayúsculas, y el mismo texto tambien en minúsculas. Estoy haciendo una consulta con la cláusula LIKE, pero solo me encuentra el texto tal y como lo escribo, es decir, si lo escribo en mayúsculas me encuentra solo en mayúsculas, y viceversa.
Yo lo que quiero es que si escribo un texto me lo encuentre tanto si está escrito de una forma como de otra.

Muchas gracias por adelantado.

marcoszorrilla
20-04-2005, 11:51:29
Tendrás que utilizar la función SQL Upper.

Un Saludo.

Tecnic2
20-04-2005, 12:48:46
Me podrias hacer un ejemplo por favor?
No lo veo muy claro.

Gracias.

Lepe
20-04-2005, 13:35:07
SELECT NOMBRE from tabla where upper(nombre) lke '%perico%'


un saludo

jachguate
20-04-2005, 15:32:27
SELECT NOMBRE from tabla where upper(nombre) lke '%perico%'


un saludo

La consulta de Lepe en este caso nunca devolverá registros... dado que la condición compara una cadena siempre en mayúsculas (upper(nombre)) contra una que está en minúsculas... '%perico%'.

Lo correcto sería:


Select nombre
from tabla
where upper(nombre) lke '%PERICO%'


o bien


Select nombre
from tabla
where upper(nombre) lke upper('%perico%')


Hasta luego.

;)

Tecnic2
20-04-2005, 18:40:59
Con la solucion que me dais no sé si va a funcionar, yo no tengo por que saber si el texto que me ponen es en mayusculas o minusculas. Tiene que encontrar los registros indiferentemente de que el texto a buscar sea de una manera u otra.

Gracias.

marcoszorrilla
20-04-2005, 18:44:53
Si va a funcionar, precisamente lo que se hace es convertirlo todo a mayúsculas para que la búsqueda se haga siempre en mayúsculas, por lo tanto te encontrará el texto esté guardado en mayúsculas o minúsculas e independientemente de que quien busca a su vez lo teclee en minúsuculas.

Un Saludo.

Tecnic2
20-04-2005, 19:09:35
Muchas gracias, lo que me ha funcionado ha sido la segunda opción:


where upper(nombre) lke upper('%perico%')



Gracias.