Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: help with sql
"Brian (withholding surname)" <brianb000001_at_hotmail.com> a écrit dans le message de news:
1152184122.310119.86150_at_p79g2000cwp.googlegroups.com...
| Hi, I am using Java to query 10g database. I have table containing this
| information
|
| ID EMAILTO
| ---- ---------------------------------
| 1 Sangster, Derek; Williams, Mary G; Phillpot, Mark
| 17 Williams, Mary G
| 29 Cunningham, Peter; Richards; Peter
|
| I want to turn this into columns LASTNAME and FIRSTNAME
| 1 Sangster Derek
| 1 Williams Mary G
| 1 Phillpot Mark
| 17 Williams Mary G
| 29 Cunningham Peter
| 29 Richards Peter
|
| I am query database so can only use SQL and not procedures PLSQL. How
| can I do this? URGENT.
|
| Brian
|
SQL> select * from t order by id;
ID EMAILTO
---------- ------------------------------------------------------------ 1 Sangster, Derek; Williams, Mary G; Phillpot, Mark 17 Williams, Mary G 29 Cunningham, Peter; Richards, Peter
3 rows selected.
SQL> col firstname format a12 SQL> col lastname format a12 SQL> with
4 select max(length(emailto)-length(replace(emailto,';','')))-1 maxval 5 from data
9 select id, rn, 10 trim(substr(emailto, 11 instr(emailto,';',1,rn)+1, 12 instr(emailto,';',1,rn+1)-instr(emailto,';',1,rn)-1)) 13 name 14 from data, lines 15 where rn < length(emailto)-length(replace(emailto,';',''))16 )
18 trim(substr(name,1,instr(name,',')-1)) lastname, 19 trim(substr(name,instr(name,',')+1)) firstname20 from wholenames
ID LASTNAME FIRSTNAME
---------- ------------ ------------
1 Sangster Derek 1 Williams Mary G 1 Phillpot Mark 17 Williams Mary G 29 Cunningham Peter 29 Richards Peter
6 rows selected.
Regards
Michel Cadot
Received on Sun Jul 30 2006 - 01:40:51 CDT