42804: datatype_mismatch
PostgreSQLЧто это значит?
Ожидаемый и переданный типы данных не совпадают. Например, присвоение столбцу значения неверного типа, ветви CASE, возвращающие разные типы, или ветви UNION с несогласованными типами.
Почему возникает?
Присваивание, несовместимое с типом столбца; ветви CASE/COALESCE, дающие разные типы; соответствующие столбцы в UNION разных типов; значение в RETURN, не соответствующее типу результата функции; не boolean там, где ожидается boolean.
Как исправить
Приведите выражение к правильному типу: value::integer или CAST(value AS numeric). Сделайте так, чтобы все ветви CASE возвращали один и тот же тип. В UNION согласуйте типы соответствующих столбцов с обеих сторон. Убедитесь, что условие WHERE даёт boolean.