Query

10/04/2006 - 21:35 por Kevo | Informe spam
He levantado una tabla con rangos de IP pertenecientes a varias empresas
clientes
Por ejemplo, empresa "X" tiene IP's de 192.168.0.13 hasta 192.168.0.27
Entonces tabla se constituye com los campos: IP1,IP2,EMPRESA,id

Necesito crear una busqueda que me devuelva el nombre de la empresa a la que
pertenece una dirección IP en específico.

De antemano, Gracias!
 

Leer las respuestas

#1 Alejandro Mesa
10/04/2006 - 21:57 | Informe spam
Kevo,

Quizas puedas convertir el valor del IP a un bigint y usar el operador
"between".

select *
from t1
where @ip between cast(replace(ip1, '.', '') as bigint) and
cast(replace(ip2, '.', '') as bigint)
go

Si esta tabla contiene muchas filas, entonces no esperes buen tiempo de
respuesta por parte de sql server en esta sentencia porque no hara un uso
apropiado de indices en caso de que estos existan por las columnas ip1 y ip2.
No es buena practica manipular las columnas que toman parte en el filtro.


AMB

"Kevo" wrote:

He levantado una tabla con rangos de IP pertenecientes a varias empresas
clientes
Por ejemplo, empresa "X" tiene IP's de 192.168.0.13 hasta 192.168.0.27
Entonces tabla se constituye com los campos: IP1,IP2,EMPRESA,id

Necesito crear una busqueda que me devuelva el nombre de la empresa a la que
pertenece una dirección IP en específico.

De antemano, Gracias!

Preguntas similares