Nochmal in einer List_Agg = Group-Concat Version, wir aber dadurch auch nicht schöner
SQL-Code:
select rezept.bezeichnung,
CONCAT(
Case When zutat_opt.bezeichnung is null Then null else Concat(zutat_opt.bezeichnung,' ') END,
String_Agg(zutat.bezeichnung, ' ') WITHIN GROUP (order by lfdnr)
) as Zutatenliste
from rezept
left join zutaten on rezept.rezeptid = zutaten.rezeptid
and (zutaten.zutatid<>rezept.optionalezutatid or rezept.optionalezutatid is Null)
left join zutat on zutat.zutatid = zutaten.zutatid
left join zutat zutat_opt on zutat_opt.zutatid=rezept.optionalezutatid
where lfdnr=(select min(lfdnr) from zutaten z where z.rezeptid=zutaten.rezeptid and z.zutatid=zutaten.zutatid)
Group By rezept.bezeichnung, zutat_opt.bezeichnung