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)
-   -   Conversión de datos (https://www.clubdelphi.com/foros/showthread.php?t=93343)

Angel.Matilla 10-08-2018 13:18:26

Conversión de datos
 
En una tabla en FB 2.5 tengo un campo cuenta bancaria en el que hay mezclados datos con y sin el correspondiente código IBAN (ESxx, etc.) ¿Cómo podría hacer un SELECT sobre esa tabla de forma que me sacara sólo aquellos registros que NO contuvieran dicho código IBAN? ¿Podría valer hacer un CAST sobre esas dos primeras posiciones del campo? Algo así como:
Código PHP:

SELECT CAST(SUBSTRING(Iban FROM 1 FOR 2) AS INTEGER


ecfisa 10-08-2018 15:44:29

Hola.

Tomando en cuenta que el código IBAN es de la forma:


¿ Que formato guardas cuando no tiene el código ? Imagino que no es cadena vacía o nulo por que sería una consulta muy simple.

Saludos :)

Casimiro Notevi 10-08-2018 16:11:45

Si todas son cuentas españolas, empezarán por 'ES', así que como dice ecfisa, sería un simple select:
Código SQL [-]
select iban
from latablaquesea
where substring(iban from 1 for 2)='ES'

Angel.Matilla 13-08-2018 10:20:52

Gracias a los dos por las respuestas.
Cita:

Empezado por ecfisa (Mensaje 528017)
¿ Que formato guardas cuando no tiene el código ? Imagino que no es cadena vacía o nulo por que sería una consulta muy simple.

No, evidentemente. Si no está el IBAN completo guardo, al menos, el CCC español es decir: las últimas 20 posiciones. Los casos en que está así es en aquellos que no se ha podido hacer la conversión del CCC al IBAN.
Cita:

Empezado por Casimiro Notevi (Mensaje 528018)
Si todas son cuentas españolas, empezarán por 'ES'

El problema es que hay como un 1% de cuentas que no son españolas.
No obstante, dándole vueltas este fin de semana al problema, encontré la solución: los códigos de países, de acuerdo con el estándar ISO 3166-1, los tengo guardados en un tabla con lo que me basta buscar aquellas cuentas cuyas dos primeras posiciones no estén en dicha tabla.

Angel.Matilla 13-08-2018 12:15:16

Cita:

Empezado por ecfisa (Mensaje 528017)
Tomando en cuenta que el código IBAN es de la forma:

Otra cosa. El inicio del IBAN tiene siempre la misma estructura, independientemente del país: Dos posiciones para el identificador del país y otras dos para los dígitos de control. Otra cosa es la estructura del resto del IBAN.

ecfisa 13-08-2018 17:04:11

Hola.
Cita:

Empezado por Angel.Matilla (Mensaje 528045)
...
No obstante, dándole vueltas este fin de semana al problema, encontré la solución: los códigos de países, de acuerdo con el estándar ISO 3166-1, los tengo guardados en un tabla con lo que me basta buscar aquellas cuentas cuyas dos primeras posiciones no estén en dicha tabla.

^\||/ Me alegra que le dieras solución.

Saludos :)


La franja horaria es GMT +2. Ahora son las 07:19:28.

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