Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Replace con substring en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=87526)

nuxbaster 18-01-2015 18:38:33

Replace con substring en Firebird
 
Hola buenos días a todos:

Quisiera pedir su opinion y consideración para el siguiente problemas que tengo presentado, en una base de datos tengo un campo de tipo char con longitud 9 que me almacena un registro de la siguiente forma: A00000001 ,A00004781, A01234567. El problema es eliminar los ceros a la izquierda para que queden de la siguiente forma A1, A4781, A1234567 .

Lo he hecho con esta consulta:

Código SQL [-]
SELECT REPLACE(CAMPO1,SUBSTRING(CAMPO1 FROM 2 FOR 1),'') from TABLA
y funciona muy bien pero al llegar a un registro con toda la longitud de ceros solo me devuelve A ejemplo:
A12345678 queda como A.... Analizando con detalle la consulta es lógico que lo haga de dicha forma pero si ustedes pueden apoyarme con otra cnsulta o una pista para poder eliminar los ceros a la iozquierda.

Se los agradeceria.!

Saludos!

Casimiro Noteví 18-01-2015 18:49:17

Si no recuerdo mal, es más fácil:
Código SQL [-]
select replace(campo1,'0','') from TBARTICULOS

Casimiro Noteví 18-01-2015 18:50:13

He dicho una tontería, eso eliminará los ceros, estén donde estén.

Casimiro Noteví 18-01-2015 18:56:49

Se me ocurre otra forma:

Código SQL [-]
select substring(campo1 from 1 for 1) || cast(SUBSTRING(campo1 from 2 for 9) as integer)
from tabla

EDITO:

Código SQL [-]
select substring(campo1 from 1 for 1) || 
       replace(cast(SUBSTRING(campo1 from 2 for 9) as integer),0,'')
from EJEMPLO5


La franja horaria es GMT +2. Ahora son las 14:05:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi