Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Like con un numero es posible? (https://www.clubdelphi.com/foros/showthread.php?t=11264)

Franklim 09-06-2004 20:26:16

Like con un numero es posible?
 
Hola amigos, estoy haciendo creando una busqueda para un programa en el cual permito que se haga por 3 campos diferentes :
Por Nombre
Por Apellidos
Por Numero Expediente
Uso el operador Like en la sentencia sql para que me devuelva todos los semejantes y funciona para el nombre y apellidos que son cadena de caracteres, pero para el Numero Expediente no porque es un numero o por que yo lo uso mal. Me gustaria saber si existe algun operador similar al like para numeros o si se puede usar el like que me expliquen como.

Saludos y muchas gracias por la ayuda.

cbrrr 09-06-2004 20:31:23

Con campos numéricos suele usarse el comparador = o bien el between

Código SQL [-]
 select *
 from tabla
 where campo between inicial and final
La verdad es que no tiene mucho sentido el like para número, pero si aun así te interesara, puedes mirar de hacer un casteo a string y luego usar el like
Código SQL [-]
 select *
 from tabla
 where cast(campo as varchar(X)) like 'valor'

delphi.com.ar 09-06-2004 20:33:05

Yo he usado en mas de una ocasión LIKE con números sin problemas, en Oracle. Supongo que Oracle automáticamente convierte el número a string para procesarlo, por eso no utiliza los índices ;). No se en que motor trabajas, pero te recomiendo que pruebes hacer un like del cast a string del campo a buscar.

Saludos!

jachguate 09-06-2004 20:53:47

Como bien ha apuntado delphi.com.ar, en el caso de oracle, ocurre una conversión automática de tipos, ya que el like funciona únicamente con cadenas.

No está de mas decir que una operación de este tipo será bastante ineficiente, pues el servidor no podrá utilizar ningún indice para optimizarla, por lo que tenderá a ser lenta en tablas con una cantidad regular de registros, ya que obligará a hacer full table scans. En el caso de Oracle, a partir de la 8i, puede crearse un indice basado en funciones, y entonces si que la consulta sería optima.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 17:48:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi