FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Eliminar zeros
Buenas,
Existe alguna función que elimine los ceros a la izquierda en un string. 'Replace' no me vale. Por ejemplo: Registro 1: Referencia = '000134-580' Registro 2: Referencia = '134-580' Registro 3: Referencia = '00134-580' Lo que quiero es que con el siguiente select (uso un TAdoQuery): Select * from tabla where Referencia = '134-580 me devuelva los tres registros Muchas gracias |
#2
|
||||
|
||||
|
#3
|
|||
|
|||
Gracias pero no me sirve, por dos motivos:
- el programa es muy complejo y no me atrevo a cambiar la instrucción sql, por lo que no me sirve poner la condición en el where. - porqué '%134-580%' no hace lo que yo quiero. Por ejemplo: Registro 1: Referencia = '000134-580' Registro 2: Referencia = '134-580' Registro 3: Referencia = '00134-580' Registre 4: Referencia = '134-580 abc' Me devolvería los 4 registros y el cuarto no cumple con la condición |
#4
|
||||
|
||||
Pues cuéntanos todos los casos posibles que valen o no valen, no somos adivinos
|
#5
|
|||
|
|||
Casimiro, mi primer post pone exactamente que quiero, una función para eliminar los ceros de la izquierda en un string, es decir, quiero que:
'000134-58' '0000000134-58' '00134-58' .... Tengo un query con 1000 registros, y quiero filtrar aquellos registros cuyo campo referencia sea '134-58'. Los tres ejemplos anteriores entrarían dentro del filtro, este, por ejemplo no, '000134-58 abc' Mejor no lo puedo explicar Gracias |
#6
|
||||
|
||||
¿Y lo quieres hacer desde delphi o en sql?
|
#7
|
|||
|
|||
Suponiendo que el campo Referencia fuese numérico, o que sólo admitiera números, la instrucción sería la siguiente:
Select Referencia From Table Where CDbl(Referencia) = '134-580' Pero como el campo Referencia contiene carácteres alfanuméricos, no puedo usar la instrucción CDbl Gracias. |
#8
|
||||
|
||||
¿No te vale un procedimiento almacenado?, ¿qué base de datos usas?
|
#9
|
|||
|
|||
Casimiro, no es que no me valga. Lo que sucede es que este programa está funcionando, es complejo, la persona que lo escribió se fue y no me atrevo a tocar tanto código. Por eso prefiero hacer un filtro y después lo elimino.
Te seré sincera, creo que esto que quiero no es posible |
#10
|
||||
|
||||
No has dicho qué base de datos usas, tampoco si esa sentencia se lanza desde delphi o está en la propia base de datos.
Si nos informaras exactamente de todo lo que te he preguntado hasta ahora sería posible ayudarte, aunque sea complejo |
#11
|
|||
|
|||
Casimiro, en mi primer post digo:
Lo que quiero es que con el siguiente select (uso un TAdoQuery), o sea, en Delphi, tengo un TAdoQuery con las siguientes propiedades: TAdoQuery1.Sql -> "Select * from Tabla" TAdoQuery1.Filter -> Funcion(Referencia) = '134-580' donde funcion sería la que me gustaría saber si existe, una que elimine los ceros de la izquierda en un string. La base de datos que uso es Access |
#12
|
||||
|
||||
Aunque no exista una función que quite los ceros, puedes hacerlo tú, por ejemplo, algo simple como esto te puede valer:
Y para usarlo:
No sé cómo funciona el filtro del adoquery, pero también puedes hacer algo así como: Código:
TAdoQuery1.Sql -> "Select * from Tabla"; Referencia := QuitarCerosIzquierda(Referencia); TAdoQuery1.Filter -> (Referencia) = '134-580' |
#13
|
|||
|
|||
Buenas de nuevo Casimiro, jamás he utilizado una función en un filtro, pero si lo mencionas será porqué es posible.
Lo he probado y de momento me da error. Por la tarde insistiré y informaré del resultado. Gracias |
#14
|
||||
|
||||
Hola kambiz.
Cita:
Dices que no te atreves a cambiar la instrucción SQL, pero es eso mismo lo que sugieres con tu primer mensaje, por lo que se genera algo de confusión. Sobre la última sugerencia del propio Casimiro, dices que te aparece un error, pero no mencionas cuál ni en qué instrucción (algo que es elemental cuando se hacen consultas en un foro). Donde estoy es por la mañana, donde está Casi es de tarde, alguien estará leyendo esto desde algún lugar de Asia donde ahora mismo es de noche, ¿tú dónde estás? Toma en cuenta que no siempre es fácil interpretar lo que algún compañero pregunta, aunque para él esté muy claro. Y nunca está de más la cortesía de un "bueno, mira, quizá no me expliqué bien, te pongo un ejemplo..." (eso de "mi primer post pone exactamente que quiero" fue un poco grosero). Aquí estamos todos para ayudarnos; ayúdanos a ayudarte. Al González. |
#15
|
|||
|
|||
Tal como dices, Al González, en todos los post estoy dando las gracias, con lo que si algunas palabras mías te puedan resultar groseras, no deja de ser tu interpretación.
Además, si estoy preguntando y alguien me contesta desinteresadamente, sería absurdo por mi parte contestarle mal o con algún tipo de exigencia. No entiendo porqué me echas la bronca |
#16
|
||||
|
||||
Descuida, no hay bronca tal.
|
#17
|
||||
|
||||
Pienso que el principal problema es de desconocimiento, que no conoce el programa y no se atreve a tocar nada, pero el problema es que así no es fácil ayudar.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Completar campo con zeros | alcides | Varios | 8 | 20-02-2009 17:39:15 |
Eliminar Caracteres | ZayDun | Varios | 3 | 28-03-2007 02:04:08 |
Eliminar el BDE | roman | Varios | 9 | 05-09-2006 15:24:51 |
eliminar opcion de eliminar en un dbgrid | morfeo21 | Varios | 3 | 14-07-2005 17:05:32 |
Eliminar formulario | jose_2057111 | Varios | 1 | 10-12-2004 13:21:42 |
|