Как преобразовать «» в NULL в PostgreSQL

#postgresql

#postgresql

Вопрос:

У меня проблема в PostgreSQL. Мне нужно сделать что-то вроде этого:

 select * from single_occurrences
where 
age::int4 > 29
  

И я получил эту ошибку:

 ERROR:  invalid input syntax for integer: ""
  

Возраст поля — это текстовое поле. Как я могу преобразовать все значения «» в значения NULL?

С наилучшими пожеланиями,

Ответ №1:

 SELECT *
  FROM single_occurrences
 WHERE CASE WHEN age="" THEN NULL ELSE age::int4 END > 29
  

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

1. Если вам не нужно сохранять возраст «3 месяца», пока вы на нем, рассмотрите возможность изменения типа данных на целое число.

2. Или используйте interval, пока вы этим занимаетесь.

3. Конечно, это должны быть одинарные кавычки.

Ответ №2:

ОБНОВИТЬ single_occurrences УСТАНОВИТЬ age=NULL, ГДЕ age=»»;