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

Busqueda por numero con mas coincidencia de digitos

Estas en el tema de Busqueda por numero con mas coincidencia de digitos en el foro de SQL Server en Foros del Web. Tengo en una tabla un conjunto de registros que poseen, segun una logica existente, numeros o rango de numeros identificados solo por el largo del ...
  #1 (permalink)  
Antiguo 21/11/2016, 13:29
 
Fecha de Ingreso: febrero-2016
Mensajes: 8
Antigüedad: 1 año, 1 mes
Puntos: 0
Sonrisa Busqueda por numero con mas coincidencia de digitos

Tengo en una tabla un conjunto de registros que poseen, segun una logica existente, numeros o rango de numeros identificados solo por el largo del valor.

ejemplo:
Los numeros son de largo 8 digitos.
Ahora bien en la BD tengo valores como

258272
2582723
25827200

Y un monton de campos adicionales....

En los registros indicados
el primer valor es un rango donde obtendria valores desde el 25827200 al 25827299 (100 numeros)
el segundo tambien es un rango 25827230 al 25827239 (10 numeros)
el tercer valor es un numero solamente. 25827200


Ahora bien la busqueda es si yo tengo por ejemplo el valor
25827200 el registro que necesito es el correspondiente al valor exacto
si tengo el valor 25827202 deberia obtener el registro del rango 258272
el valor 25827235 deberia obtener el registro del rango 2582723
y asi.

Actualmente estoy haciendo busquedas progresivas ejemplo para buscar el 25827202 busco:

= 25827202 al no obtener resultados restaria un digito al numero para buscar
= 2582720 al no obtener resultados restaria un digito al numero para buscar
= 258272 obtengo el registro que quiero.

Mi pregunta es simple. Existe otra forma de aplicar esta busqueda?
  #2 (permalink)  
Antiguo 21/11/2016, 18:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 6.842
Antigüedad: 10 años, 7 meses
Puntos: 689
Respuesta: Busqueda por numero con mas coincidencia de digitos

Son valores numericos?? explicas un poco mejor la logica de lo que quieres y para que usas eso, porque la verdad no entendi nada....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/11/2016, 05:09
 
Fecha de Ingreso: febrero-2016
Mensajes: 8
Antigüedad: 1 año, 1 mes
Puntos: 0
Respuesta: Busqueda por numero con mas coincidencia de digitos

Si en la BD son numeros aunque en el campo esta definido como varchar.

En si ese campo son prefijos numericos, pero dicho prefijo puede ser de cualquier largo y uno puede ser una serie dentro de otra

Yo poseo el numero completo y requiero saber por cada numero a cual prefijo que tenga mayor coincidencia es el q le corresponderia la información.

por ejemplo en la BD tengo registros tipo

Prefijo campo1 campo 2
222 valorA valorA.1
22233 valorB valorB.1
22233456 valorC valorC.1



El largo de los numeros que poseo es de 8 digitos
Si el numero a buscar es el
22233456, el registro en BD que debo obtener es el 22233456 (valorC, valorc.1....)

Pero puedo tener el numero 22233457
En ese caso el registro que mas coincide es el 22233 (valorB, valorB.1)
A pesar que tambien empieza con 222 el que mas coincidencia tiene es el prefijo 22233

En otro caso puedo tener el 22255566 para ese caso el mas coincidente en la BD es el 222 (valorA, valorA.1)

Espero hacerme entender.

Última edición por jeancga; 22/11/2016 a las 05:10 Razón: largo de numeros
  #4 (permalink)  
Antiguo 22/11/2016, 06:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 6.842
Antigüedad: 10 años, 7 meses
Puntos: 689
Respuesta: Busqueda por numero con mas coincidencia de digitos

Son numeros pero estan en varchar? o sea lo que tienes son cadenas, y quieres hacer comparaciones con cadenas, de ser ese el caso podrias usar busquedas de texto completo(full text search) en tu base de datos, estas te sirven para cuando quieres hacer busquedas como las que planteas, investiga un poco sobre eso.
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me



La zona horaria es GMT -6. Ahora son las 02:50.