Pembaruan Anda setara dengan ini.
UPDATE schedules s
SET days = (SELECT LISTAGG(day, ', ')
within group ( ORDER BY day_order )
FROM days d
WHERE d.schedule IN ( 'Weekend', 'Weekday' )
AND d.schedule = s.schedule
GROUP BY d.schedule ) ;
Namun, saya tidak akan merekomendasikan ini. Menyimpan catatan sebagai nilai yang dipisahkan koma pasti akan menyebabkan masalah bagi Anda di masa mendatang. Hanya gunakan untuk menampilkan hasil menggunakan kueri seperti di bawah ini. Ini mengasumsikan bahwa di tabel hari Anda, ada baris unik untuk setiap hari. Jika ada duplikat, join
ke hasil yang berbeda yang ditetapkan dari hari.
SELECT d.id,
d.schedule,
LISTAGG(s.day, ', ')
within GROUP ( ORDER BY d.day_order )
FROM days d
join schedules s
ON ( d.schedule = s.schedule )
WHERE d.schedule IN ( 'Weekend', 'Weekday' )
GROUP BY d.id,
d.schedule