42804: datatype_mismatch
PostgreSQLWas bedeutet das?
Erwarteter und gelieferter Datentyp stimmen nicht überein. Zum Beispiel die Zuweisung eines Werts falschen Typs an eine Spalte, CASE-Zweige mit unterschiedlichen Rückgabetypen oder UNION-Zweige mit nicht übereinstimmenden Typen.
Ursache
Eine mit dem Spaltentyp inkompatible Zuweisung; CASE-/COALESCE-Zweige liefern unterschiedliche Typen; einander entsprechende Spalten in einer UNION haben unterschiedliche Typen; ein per RETURN zurückgegebener Wert passt nicht zum Rückgabetyp der Funktion; kein boolean, wo ein boolean erwartet wird.
Lösung
Caste den Ausdruck in den richtigen Typ: value::integer oder CAST(value AS numeric). Sorge dafür, dass alle CASE-Zweige denselben Typ liefern. Gleiche in einer UNION die Typen einander entsprechender Spalten auf beiden Seiten an. Stelle sicher, dass die WHERE-Bedingung einen boolean ergibt.