SQL - de horizontal a vertival

   
Vista:

de horizontal a vertival

Publicado por hubert (98 intervenciones) el 28/01/2008 20:47:22
Otra consulta.
tengo 3 campos CHAR de la siguiente manera.
campo1, campo2, campo3
'01,02,05,08,06,10', '40,20,11,09,05,15', '100,200,300,400,500,600'

tenerlos en columnas verticales
C1, c2, c3
01, 40, 100
02, 20, 200
05, 11, 300
08, 9, 400
06, 5, 500
10, 15, 600

C1 char
C2 y C3 Integer

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:de horizontal a vertival

Publicado por stella (16 intervenciones) el 29/01/2008 16:11:53
Prueba esto:

select substr( '01,02,05,08,06,10', 1, instr('01,02,05,08,06,10', ',' ,1,1 )-1) campo1,

substr( '40,20,11,09,05,15', 1, instr('40,20,11,09,05,15', ',' ,1,1 )-1) campo2,

substr( '100,200,300,400,500,600' , 1, instr( '100,200,300,400,500,600' , ',' ,1,1 )-1) campo3

from dual

union

select substr('01,02,05,08,06,10', instr('01,02,05,08,06,10'||',', ',',1, i-1)+1,
instr('01,02,05,08,06,10'||',', ',',1, i)-instr('01,02,05,08,06,10'||',', ',',1, i-1)-1) campo1,

substr('40,20,11,09,05,15', instr('40,20,11,09,05,15'||',', ',',1, i-1)+1,
instr('40,20,11,09,05,15'||',', ',',1, i)-instr('40,20,11,09,05,15'||',', ',',1, i-1)-1) campo2,

substr('100,200,300,400,500,600', instr('100,200,300,400,500,600'||',', ',',1, i-1)+1,
instr('100,200,300,400,500,600'||',', ',',1, i)-instr('100,200,300,400,500,600'||',', ',',1, i-1)-1) campo3

from (select rownum i from dual connect by rownum < = 10 ), dual, dual d2
where i >= 2

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar