Выражение case
возвращает один тип.Проблема в том, что segment
- это число, а 'Other'
- это строка.Выражение должно сделать выбор, и оно выбирает числовой тип (следуя стандартным правилам SQL).
Это легко исправить.Просто приведите segment
:
select (case when segment is null then 'Other' else segment::text end) as segment
from table;
Было бы более естественно написать этот запрос, используя coalesce()
:
select coalesce(segment::text, 'Other') as segment
from table;