Also CASE ist korrekt (wenn es E-Mail Adressen der Fachberater sind, würde ich das nicht direkt in der Funktion hinterlegen, sondern die E-Mail Adresse direkt in "inhalt_fachberater" mit speichern.
Hast du geprüft ob dein SELECT korrekt ist und funktioniert? Das kannst du leicht testen. Erstelle dir eine neue Backendfunktion (kein Trigger) kopiere dein SELECT da rein aber tausche NEW.(xxx.relationen_fuer_reklamationsaufnahme.id)) mit einer Variablen aus (zB _test_id). Die Variable legst du nicht im DECLARE Bereich an, sondern auf der rechten Seite, den RETURN Wert setzt du auf TEXT
Dein SELECT kommt direkt ins RETURN, in etwa so:
$BODY$
DECLARE
BEGIN
RETURN (
SELECT fachberater INTO inhalt_fachberater
FROM {xxx}.[fachberater_fuer_reklamationsaufnahme]
WHERE id = (
SELECT fachberater
FROM {xxx}.[relationen_fuer_reklamationsaufnahme]
WHERE (xxx.relationen_fuer_reklamationsaufnahme.id) = NEW.(xxx.relationen_fuer_reklamationsaufnahme.id));
);
END;
$BODY$
Nach dem Speichern kannst du rechts mittels Execute eine beliebige existierende Datensatz ID von {xxx}.[relationen_fuer_reklamationsaufnahme] eintippen und solltest entweder einen Fehler oder einen Namen in der Response erhalten