PDA

Ver la Versión Completa : Como concateno cadenas en Firebird?¿?


burasu
20-07-2004, 13:14:20
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:
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:

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:

SELECT COALESCE(CAMPO1, '') || COALESCE(CAMPO2, '') FROM TABLA

Se arreglaría. Esto es en Firebird 1.5