FAQ |
Calendar |
![]() |
|
Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman. |
![]() |
|
Thread Tools |
#1
|
|||
|
|||
![]()
Bro, gw mau nanya nih. Misalnya gw ada table gini : Code: nama | nama_mantan_cewek ---------------------------- paijo | intan paijo | dewi koplo | tyas koplo | andin paijo | yeta paijo | inem nah, dari table itu gw mo bikin tabel baru dengan hasil gini : Code: nama | nama_mantan_cewek ----------------------------- paijo | intan,dewi,yeta,inem koplo | tyas,andin kira2 gmana ya bro caranya? jangan bilang sorting manual, karena data aslinya bisa mencapai 10 juta record. Thx sebelumnya. NB:melon menanti ![]() CASE CLOSED!!! Thx bwat bro postthink atas jawabannya. melon sudah dikirim. ![]() Spoiler for berikut jawabannya: Code: CREATE TABLE TABEL1 ( NAMA VARCHAR2(2000 BYTE), NAMA_MANTAN_CEWEK VARCHAR2(2000 BYTE) ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; CREATE TABLE TABEL2 ( NAMA VARCHAR2(2000 BYTE), NAMA_MANTAN_CEWEK VARCHAR2(2000 BYTE) ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; SET DEFINE OFF; Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('paijo', 'intan'); Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('paijo', 'dewi'); Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('koplo', 'tyas'); Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('koplo', 'andin'); Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('paijo', 'yeta'); Insert into TABEL1 (NAMA, NAMA_MANTAN_CEWEK) Values ('paijo', 'inem'); COMMIT; lalu bikin function untuk mendapatkan nama mantan cewek CREATE OR REPLACE FUNCTION get_mantan_cewek(nama_ in varchar2) RETURN VARCHAR2 IS mantan_cewek varchar2(2000); i number(10); cursor cur is select nama_mantan_cewek from tabel1 where nama=nama_; BEGIN i:=1; FOR cew in cur Loop if i=1 then mantan_cewek := cew.nama_mantan_cewek; else mantan_cewek := mantan_cewek || ',' || cew.nama_mantan_cewek; end if; i:=i+1; end loop; return mantan_cewek; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN OTHERS THEN -- Consider logging the error and then re-raise RAISE; END get_mantan_cewek; Lalu bikin procedure untuk insert ke tabel2 CREATE OR REPLACE PROCEDURE insert_tabel2 IS mantan varchar2(2000); cursor cur is select distinct(nama) as nama from tabel1; BEGIN FOR cew in cur Loop mantan := get_mantan_cewek(cew.nama); insert into tabel2 values(cew.nama,mantan); end loop; commit; END insert_tabel2 ; Jalankan procedure nya SQL>exec insert_tabel2; Lalu lihat hasilnya select * from tabel2; Kasih melon gan ya Terkait:
|
![]() |
|
|