Замените NULL в моей таблице на In PostgreSQL
При поиске способов замены нулевых значений в моей таблице на 0 при переполнении стека, оказывается, что многие найденные мною потоки указывают на использование функции COALESCE. Например, postgresql возвращает 0, если возвращаемое значение равно null
Я понимаю, что функция COALESCE "заменяет" нулевые значения для вашего конкретного запроса; однако сама таблица остается нетронутой. То есть, если вы снова запросили таблицу в отдельном запросе без слияния, значения null все равно будут существовать.
Мой вопрос в том, есть ли способ для меня постоянно заменять нулевые значения в моей таблице на заданное значение (например, 0), чтобы мне не нужно было объединяться в каждом запросе? И в качестве дополнения к моему вопросу, считается ли плохой практикой изменять исходную таблицу вместо выполнения манипуляций в запросах?
2 ответов:
Вы можете просто сделать обновление:
UPDATE table SET col1 = 0 WHERE col1 IS NULL;Это должно эффективно обновить все соответствующие записи в вашей таблице
Я понимаю, что вы получили ответ, но вы также можете использовать в своем дальнейшем запросе функцию
nvl. Вы можете заменить во время выполнения нулевые значения на 0, чтобы убедиться, что ваш запрос работает должным образом.SELECT id ,nvl(col1, 0) FROM ...Это не обновление в таблице, но вы уверены, что все нулевые значения отображаются как 0, как вы хотите. Может быть, вы забыли обновить.
Comments