Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   buscar numeros en campo de tipo char!!!!!!!!! (https://www.clubdelphi.com/foros/showthread.php?t=61598)

david_uh 13-11-2008 18:42:46

buscar numeros en campo de tipo char!!!!!!!!!
 
Saludos foro

Estoy trabajando con delphi 6 y Firebird 2 tengo una tabla con las ventas del día, en la que hay un campo "nro de documento" que es de tipo char(12), para almacenar el nro de documento, el hecho es que cuando han llenado datos los usuarios, han puesto valores como: 000123, 0001254, 012364 y mi problema es a la hora de hacer la búsqueda, ya que se pide ubicar el docuemnto 123 y no lo encuentra como "000123" no es igual a "123" chra(acteristicamente ) hablando no lo encuentra.

Mi pregunta es como hago para que una búsqueda de "123" me liste a todo los "000123" , "00123", "0123", etc

Agradecido de antemano por cualquier respuesta me despido

David

ContraVeneno 13-11-2008 18:46:07

Código SQL [-]
Select *
from tabla
where documento like '%123'
:confused: No recuerdo como funciona firebird, pero la idea es la misma, siendo "%" el caracter comodín.

david_uh 13-11-2008 18:49:55

si gracias pero eso me botaria valore comoç
000123
656123
902123
y lo que yo deseo es solo los que empiezen en ceros
00123
0123
00123

eduarcol 13-11-2008 19:01:55

Código SQL [-]
where Cast(Documento as Integer) = 123

lo estoy diciendo de memoria, pero basicamente asi deberia funcionar.

david_uh 13-11-2008 19:08:10

bueno no es por ser molestoso pero pasa que a veces pone "A000123" osea que existe la posibilidad de que haya letras si hago el cast() a integer me daria problemas?

eduarcol 13-11-2008 19:23:35

Cita:

Empezado por david_uh (Mensaje 325867)
bueno no es por ser molestoso pero pasa que a veces pone "A000123" osea que existe la posibilidad de que haya letras si hago el cast() a integer me daria problemas?

jajaja, pues tienes razon, tienes problemas jajaja :D:D

david_uh 13-11-2008 19:25:09

jajaja mmm mmmm m buaaaaaaa buaaaaaaa buaaaaaaa :mad:

ContraVeneno 13-11-2008 19:53:20

tu campo donde guardas el número de documento, ¿de cuantos caracteres es? ¿10, 15, infinito?

ContraVeneno 13-11-2008 20:03:26

Código SQL [-]
Declare @Buscar varchar(20)

Select @Buscar = '123'

Select Folio
From UnaTabla
Where Folio like '%'+@Buscar
and IsNumeric(left(Folio, len(Replace(Folio, ' ', ''))-len(@Buscar))) = 1
and cast(left(Folio, len(Replace(Folio, ' ', ''))-len(@Buscar))  as integer) = 0

Esto me funciona en SQL Server

Con los folios:
Código:

456
A00123
00123
0000123
0045123

Me regresa:
Código:

00123
0000123


david_uh 26-11-2008 22:31:53

bien lo he puesto asi pero no me funciona en firebird como seria para hacer eso usadno sql standar o sql que entienda firebird

eduarcol 26-11-2008 22:51:53

podrias colocar como lo escribistes en Firebird?

De pronto el @Buscar no lo has sustituido por :Buscar, dado que firebird comienza los parametros con :


La franja horaria es GMT +2. Ahora son las 06:30:37.

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