Ihre Aktualisierung entspricht dieser.
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 ) ;
Aber ich würde nicht empfehlen Dies. Das Speichern der Datensätze als kommagetrennte Werte wird Ihnen in Zukunft sicher Probleme bereiten. Verwenden Sie es nur, um die Ergebnisse mit einer Abfrage wie unten anzuzeigen. Dies setzt voraus, dass es in Ihrer Tagestabelle eindeutige Zeilen für jeden Tag gibt. Wenn es Duplikate gibt, join
es in die eindeutige Ergebnismenge von Tagen.
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