Duda SQL: "Dividir" datos

ISAILOVIC

Tengo una tabla donde estan insertados los numeros de cuenta de aproximadamente 1200 personas y quisiera pasar esos datos a otra tabla ajena.

La dificultad (al menos para mi novato en esto), es que en la primera tabla aparecen el numero de cuenta todo seguido xxxx-xxxx-xx-xxxxxxxxxx y en la segunda tabla a la que quiero traspasar estos datos este numero de cuenta esta dividido en 4 campos (Entidad, oficina, DC y numerocuenta).

¿Alguna ayuda?

Gracias

erdanblo

No puedes sacar esas cosas, por ejemplo con PHP, hacer un explode, y crear nuevas consultas para meterlas en la nueva DB?

romeo2k

Utiliza el comando SUBSTR para substraer cadenas de datos.

Es decir si el número de cuenta es: xxxx xxxx xx xxxxxxxxxx y quieres sacar el número del banco, pues ya sabes, agrupas a la izquierda (o derecha según te interese) y extraes datos:

LPAD (SUBSTR(campo_cuenta, 18, 0), 1, 4)

El formato que tendrás será este: xxxxxxxxxxxxxxxx, omitiendo el número de banco.

Doy por hecho que el dígito control no lo incluyes en el número de cuenta pues son dos dígitos que se calculan por separado y son el resultado de una ecuación matemática. Si hay que meter algo siempre será 00 y jugarás con los números de cuenta (10 dígitos).

Prueba como te dije con SUBSTR.

Un saludo!

Pd.: Trabajo en un banco y contra bases de datos SQL, si necesitas algo más, en mi escasísimo tiempo libre puedo echarte algún cable.

ISAILOVIC

¿Podria seleccionar e insertar (por ejemplo) primero los 4 de la izquierda, luego en otra consulta los que ocupen los lugares del 6 al 9 etc etc?

#2 y #3 Gracias

romeo2k

Los concatenas con concat o con tuberías, es decir, seleccionas X datos de una tabla, pones || y seleccionas de otra.

Y si no lo ves así, hazte una tabla auxiliar y mete ahí lo que necesites y luego lo sacas más cómodamente.

Un saludo!

SeRiaL_k

PLSQL FTW !

Usuarios habituales

  • SeRiaL_k
  • romeo2k
  • ISAILOVIC
  • erdanblo