Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Unir dos columnas en una

Estas en el tema de Unir dos columnas en una en el foro de Oracle en Foros del Web. Hola a todos, Mi duda es la siguiente. Pondré un ejemplo abreviado para aclarlo: Dada una tabla con varias columnas: id,cuenta1, cuenta2,..... Con los siguientes ...
  #1 (permalink)  
Antiguo 24/07/2008, 01:36
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Unir dos columnas en una

Hola a todos,

Mi duda es la siguiente. Pondré un ejemplo abreviado para aclarlo:

Dada una tabla con varias columnas: id,cuenta1, cuenta2,..... Con los siguientes datos

id cuenta1 cuenta2

10 --- 4
20 5 ----
20 6 ---

De forma que una cuenta con id x tiene exclusivamente datos en una de las dos columnas cuenta1 o cuenta2. Mi objetivo es tener una sola columna cuenta:

id cuenta
10 4
20 5
20 6


Espero que podais ayudarme. Gracias de antemano!!
  #2 (permalink)  
Antiguo 24/07/2008, 07:06
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Unir dos columnas en una

Hola,

Depende del tipo de datos de columna1 y columna2, puedes concatenar o sumar para formar una tercera columna.

Por ejemplo, para tipos numericos

Código:
select id, nvl(columna1,0) + nvl(columna2,0) from t1
o para tipos caracter

Código:
select id, columna1 || columna2 from t1
Estoy asumiendo que por cada fila, solo una columna puede tener datos y la otra tiene un NULL.

Saludos
  #3 (permalink)  
Antiguo 25/07/2008, 01:57
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Unir dos columnas en una

Muchisimas gracias!!!...Las columnas eran de tipo numérico. He probado y he obtenido lo que buscaba. Gracias de nuevo!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:23.