Я импортирую данные из таблицы, которая имеет необработанные каналы в Varchar, мне нужно импортировать столбец в varchar в строковый столбец. Я попытался использовать <column_name>::integer
также, to_number(<column_name>,'9999999')
но получаю ошибки, так как есть несколько пустых полей, мне нужно получить их как пустые или пустые в новую таблицу.
Пожалуйста, дайте мне знать, есть ли для этого функция.
postgresql
casting
Виджей DJ
источник
источник
Ответы:
Дикая догадка: если ваше значение - пустая строка, вы можете использовать NULLIF, чтобы заменить ее на NULL:
источник
Вы даже можете пойти еще дальше и ограничить это объединенное поле, например: -
источник
Если вам нужно обрабатывать пустые столбцы как
NULL
s, попробуйте следующее:С другой стороны, если у вас есть
NULL
значения, которых следует избегать, попробуйте:Я согласен, сообщение об ошибке очень поможет.
источник
Единственный способ избежать ошибки из-за NULL, специальных символов или пустой строки - это сделать следующее:
источник
WHERE <column> != NULL
?Я не могу комментировать (слишком низкая репутация? Я новичок) к сообщению Лукаса.
На моем PG настройка
to_number(NULL)
не работает, поэтому мое решение будет:источник
NULLIF()
подхода. Стандарт фактически определяет NULLIF как форму предиката CASE.Если значение содержит нечисловые символы, вы можете преобразовать значение в целое число следующим образом:
Оператор CASE проверяет <столбец>, если он соответствует целочисленному шаблону, он преобразует скорость в целое число, в противном случае возвращает 0
источник
вы можете использовать этот запрос
источник
Общая проблема
Наивно введите преобразование любой строки в целое число, например
Часто приводит к известной ошибке:
проблема
В PostgreSQL нет предопределенной функции для безопасного преобразования любой строки в целое число.
Решение
Создайте пользовательскую функцию, вдохновленную функцией PHP intval () .
использование
источник
Мои два цента за приведение любой строки к целому числу:
На основе https://www.postgresqltutorial.com/regexp_replace/ .
источник