Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Hacer una búsqueda LIKE con un número

Estas en el tema de Hacer una búsqueda LIKE con un número en el foro de Bases de Datos General en Foros del Web. Necesito sacar los números que comiencen por 430 y he probado de bastantes formas y no hay manera. Como se puede hacer un like con ...
  #1 (permalink)  
Antiguo 13/12/2012, 09:25
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Hacer una búsqueda LIKE con un número

Necesito sacar los números que comiencen por 430 y he probado de bastantes formas y no hay manera. Como se puede hacer un like con un número? Lo que quiero hacer es esto:

Código SQL:
Ver original
  1. subctas38.numero LIKE ('430%')

Pero da error. he intentado haciendo un cast pero no existe CAST en dbase por lo visto:
Código SQL:
Ver original
  1. CAST(subctas38.numero) LIKE ('430%')

La base de datos es DBase a través de ODBC. Hay alguna forma?
Aparte de poner numero >=430000000 AND numero<440000000
que no me convence mucho. (Son siempre 9 cifras9.

De momento lo dejo así, pero si hay otra forma me gustaría saberla.
  #2 (permalink)  
Antiguo 13/12/2012, 10:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Hacer una búsqueda LIKE con un número

Tienes un problema conceptual: Un número no es una cadena de texto, sino una magnitud, y como tal nunca puede ser "parecida a", que el concepto de LIKE.
Una magnitud está dentro de un rango o fuera de él, pero no puede ser tomada como cadena de texto.
Si lo que quieres es un número cuyas tres primeras cifras sean 430, debes tener en cuenta que puede ser cualquier cifra entre 430 y el infinito (en realidad 430#################, que está dentro del límite de representación de números almacenados como DOUBLES, que usan 8 bytes).
En definitiva, lo que quieres no tiene mucho sentido.

El tema principal es que LIKE está definido para cadenas de caracteres, no para números, y sus resultados son inciertos cuando lo usas en el contexto incorrecto. Incluso algunos DBMS directamente devolverían un error de tipo de dato u operador incorrecto.

¿Puedes decirnos exactamente qué representa ese dato y por qué quieres buscarlo por similitud?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/12/2012, 10:46
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Hacer una búsqueda LIKE con un número

Es por tema de contabilidad. El programa está echo de forma que los clientes que empiezan por 430 son clientes "generales" digamos. Bueno, que son de un tipo en concreto. Según el tipo de cliente comiezan por un número. Es la única forma de distinguirlos en dicha base de datos.

Si tuviesen algún campo pues sería más fácil.

Por lo pronto lo solucioné como puse arriba, con numero >=430000000 AND numero<440000000 ya que por suerte tienen siempre el mismo número de cifras.

Y supongo que lo dejaré así por lo que dices. Aunque a mi me suena de haber hecho algo así en el pasado usando un CAST que pasaba el número a string. Pero aquí no funciona o tal vez recuerde mal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.