Discussion:
LIKE en campo numerico
(demasiado antiguo para responder)
Juan Linares
2009-01-13 20:14:01 UTC
Permalink
Quiero que SQL me devuelva los registros que en un campo numerico contengan
un numero, por ejemplo si mi aplicacion envia 55 me devolvera 5589, 96557,
3554 y si no aplico dicha variable debera devolverme todos.

Estoy haciendo un buscador en ASP el cual ejecuta una consulta de SQL pero
al utilizar la sentencia LIKE sobre un campo numerico me funciona si envio un
valor, pero si no envio nada solo me devuelve poco menos de la mitad de mis
registros. Alguien puede ayudarme??

de antemano mil gracias
Maxi (MVP)
2009-01-13 23:02:27 UTC
Permalink
Hola, como cuando no envia nada? sea mas explicito por favor y muestrenos
que esta haciendo
Post by Juan Linares
Quiero que SQL me devuelva los registros que en un campo numerico contengan
un numero, por ejemplo si mi aplicacion envia 55 me devolvera 5589, 96557,
3554 y si no aplico dicha variable debera devolverme todos.
Estoy haciendo un buscador en ASP el cual ejecuta una consulta de SQL pero
al utilizar la sentencia LIKE sobre un campo numerico me funciona si envio un
valor, pero si no envio nada solo me devuelve poco menos de la mitad de mis
registros. Alguien puede ayudarme??
de antemano mil gracias
Carlos M. Calvelo
2009-01-13 22:30:28 UTC
Permalink
Hola Juan,

On 13 jan, 21:14, Juan Linares <Juan
Post by Juan Linares
Quiero que SQL me devuelva los registros que en un campo numerico contengan
un numero, por ejemplo si mi aplicacion envia  55 me devolvera 5589, 96557,
3554 y si no aplico dicha variable debera devolverme  todos.
Estoy haciendo un buscador en ASP el cual ejecuta una consulta de SQL pero
al utilizar la sentencia LIKE sobre un campo numerico me funciona si envio un
valor, pero si no envio nada solo me devuelve poco menos de la mitad de mis
registros. Alguien puede ayudarme??
de antemano mil gracias
Los registros que no te devuelve seguro que tienen nulos
en ese campo.
Supongo que si no envias nada ('') entonces estás
haciendo algo así:

where campo like '%%' and <otras condiciones>

Si no buscas algo en concreto podrías simplemente no
poner esa condición:

where <otras condiciones>

O así:

where isnull(campo,'') like .... and ...

Pero mejor la primera opción.

Saludos,
Carlos
Ricardo Junquera
2009-01-14 11:46:01 UTC
Permalink
Hola Juan

Si posteas la consulta y un ejemplo será más fácil ayudarte.
Un saludo
--
Ricardo Junquera
Consultor Business Intelligence

BG&S Online Consultores
Ganadora del Premio Microsoft Business Awards 2008.
Partner de Soluciones : Satisfacción de Cliente.
Post by Juan Linares
Quiero que SQL me devuelva los registros que en un campo numerico contengan
un numero, por ejemplo si mi aplicacion envia 55 me devolvera 5589, 96557,
3554 y si no aplico dicha variable debera devolverme todos.
Estoy haciendo un buscador en ASP el cual ejecuta una consulta de SQL pero
al utilizar la sentencia LIKE sobre un campo numerico me funciona si envio un
valor, pero si no envio nada solo me devuelve poco menos de la mitad de mis
registros. Alguien puede ayudarme??
de antemano mil gracias
Jose Mariano Alvarez
2009-01-14 12:54:41 UTC
Permalink
Parece que esta utilizando like '%<valor>%'.
Si es asi, y si fuera posible, trate de evitar este tipo de búsquedas ya que
son ineficientes.
Le sugiero no usar el operador LIKE sobre campos numéricos ya que debería
producirse una conversión implícita.
--
Saludos
------------------------
Ing. Jose Mariano Alvarez
SQLTotal Consulting

***@gmail.c0m.Corregirl0
(Cambia los ceros por O y saca lo que sobra)

------------------------
IMPORTANTE
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
------------------------

Por favor tratar de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.
Post by Juan Linares
Quiero que SQL me devuelva los registros que en un campo numerico contengan
un numero, por ejemplo si mi aplicacion envia 55 me devolvera 5589, 96557,
3554 y si no aplico dicha variable debera devolverme todos.
Estoy haciendo un buscador en ASP el cual ejecuta una consulta de SQL pero
al utilizar la sentencia LIKE sobre un campo numerico me funciona si envio un
valor, pero si no envio nada solo me devuelve poco menos de la mitad de mis
registros. Alguien puede ayudarme??
de antemano mil gracias
Continúe leyendo en narkive:
Loading...