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)
-   -   Como concateno cadenas en Firebird?¿? (https://www.clubdelphi.com/foros/showthread.php?t=12544)

burasu 20-07-2004 13:14:20

Como concateno cadenas en Firebird?¿?
 
Hola vereis, estoy haciendo una aplicación de contabilidad y tengo un problema, debo actualizar una serie de datos que son una cuentas contables. Tengo que insertar en mitad de la cadena de la cuenta un par de ceros, y no tengo muy clara la sentencia que debo utilizar.

Uso algo como esto:
Código:

update cuentas set ccuenta = substr(ccuenta,1,4) + '00' + substr(ccuenta,4,4)
where strlen(ccuenta)=8

Y lo que me devuelve es algo como esto 400.0000000, y me resultaría más como hacerlo por sql que no ponerme a realizar ahora una aplicación.

Como podría arreglarlo?

Gydba 20-07-2004 13:27:10

Buenos días,

Primero supongo que los campos que estás trabajando son cadenas, segundo para concatenarlas se utiliza ||

Ejemplo:
Código SQL [-]
update cuentas set ccuenta = substr(ccuenta,1,4) || '00' || substr(ccuenta,4,4)
where strlen(ccuenta)=8

PD: No probé nada por lo cual algo me puedo estar comiendo, pero esa mas o menos es la idea.
Saludos!

burasu 20-07-2004 13:36:02

Gracias Gydba, me has ahorrado mucho trabajo, lo que no entiendo es porque antes esa misma sentencia no me funcionó? Bueno da igual lo dicho gracias. ;)

Gydba 20-07-2004 13:41:37

¿Cómo que no te funcionó? ¿Ahora si anduvo?

Julià T. 20-07-2004 19:43:41

Si las cadenas a concatenar continen valores "null", creo que no funciona, al igual que sumar valores null.

ACK 21-07-2004 09:22:34

En Interbase, cuando uno de los campos a concatenar es nulo, el resultado de la concatenación es siempre nulo. Supongo que en Firebird será igual.

Saludos

Gydba 21-07-2004 13:38:29

Vale esa aclaración...

Pero con algo del tipo:
Código SQL [-]
SELECT COALESCE(CAMPO1, '') || COALESCE(CAMPO2, '') FROM TABLA
Se arreglaría. Esto es en Firebird 1.5


La franja horaria es GMT +2. Ahora son las 02:04:38.

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