Jika Anda tidak ingin memperbarui tabel yang ada dan hanya ingin memilih data, Anda dapat menggunakan kueri yang agak sulit ini.
http://sqlfiddle.com/#!4/22909/4
WITH changed_table AS
(SELECT val1, EXTRACTVALUE (x.COLUMN_VALUE, 'e') val2new
FROM (SELECT val1, val2 xml_str
FROM table1),
TABLE (XMLSEQUENCE (XMLTYPE ( '<e><e>'
|| REPLACE (xml_str, ',', '</e><e>')
|| '</e></e>'
).EXTRACT ('e/e')
)
) x)
SELECT ct.val1, listagg(table2.val2,',') within group (order by table2.val2) val2
FROM changed_table ct, table2 table2
WHERE ct.val2new = table2.val1
group by ct.val1;
Saya telah menggunakan XMLTYPE untuk memisahkan angka yang dipisahkan koma menjadi baris. Kemudian menggabungkan baris dengan tabel kedua untuk mendapatkan deskripsi dan akhirnya menggunakan fungsi LISTAGG untuk membentuk string yang dipisahkan koma. Tidak tahu seberapa efisien kueri ini. Saya setuju dengan komentar Mark Bannister.