#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=»»;