Приведите реальный тип к логическому

#sql #postgresql

Вопрос:

У меня есть следующий запрос, который должен изменить тип поля с реального на логический:

 ALTER TABLE some_table ALTER COLUMN test_flag TYPE boolean USING test_flag::boolean;
 

но это не удается с ошибкой:

 ERROR:  cannot cast type real to boolean
LINE 1: ...st_flag TYPE boolean USING test_flag::boolean;
 

Комментарии:

1. Как вы решаете, какие REAL значения представляют TRUE FALSE собой логические значения?

Ответ №1:

Используйте другое USING предложение для преобразования данных:

 ALTER TABLE some_table
   ALTER COLUMN test_flag TYPE boolean USING (test_flag <> 0.0);