Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА:

Как заменить все значения колонок NULL в таблице? 2 года 1 мес. назад #175

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
В SQL Server есть функция ISNULL, которая принимает два параметра. Первый - значение для проверки на NULL. Второй - значение, которая функция вернет по умолчанию, если в пером параметре будет NULL. Эту функцию можно использовать в инструкции UPDATE SET, как именно, смотрите в этом примере. Также в примере продемонстрирован более "гуманный" (без функции ISNULL) способ обновления нулевых полей таблицы.
-- таблица для демонстрации работы примера
DECLARE @t TABLE (id int identity, first_name nvarchar(50), last_name nvarchar(50));

-- заполняем таблицу данными, 
-- в двух последних строчках колонка last_name имеет значение NULL
INSERT INTO @t
SELECT 'Василий', 'Кбайтов';
INSERT INTO @t
SELECT 'Маша', NULL;
INSERT INTO @t
SELECT 'Федя', NULL;

-- выводим все записи
SELECT * FROM @t;

-- заменяем в поле last_name все записи NULL на строку "Неизвестно"
UPDATE @t SET last_name = ISNULL(last_name, 'Неизвестно');

-- выводим все записи
SELECT * FROM @t;
-- обратите внимание, теперь в колонке last_name вместо NULL стоит строка "Неизвестно"

-- ************************************************************************************
-- ************************************************************************************
-- ************************************************************************************

-- а теперь немного по-другому, 
-- этот способ в плане производительности будет лучше, нежели указанный выше

-- очищаем таблицу, для демонстрации работы примера
DELETE FROM @t;

-- заполняем таблицу данными, 
-- в двух последних строчках колонка last_name имеет значение NULL
INSERT INTO @t
SELECT 'Василий', 'Кбайтов';
INSERT INTO @t
SELECT 'Маша', NULL;
INSERT INTO @t
SELECT 'Федя', NULL;

-- выводим все записи
SELECT * FROM @t;

-- заменяем в поле last_name все записи NULL на строку "Неизвестно"
UPDATE @t SET last_name = 'Неизвестно' WHERE last_name IS NULL;

-- выводим все записи
SELECT * FROM @t;
-- обратите внимание, теперь в колонке last_name вместо NULL стоит строка "Неизвестно"

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Модераторы: Дмитрий

О сайте

Строительство индивидуальных домов из лёгкого самана - опыт, советы, методика строительства и подробные инструкции. А также возможность применения альтернативных источников энергии.


Контакты

08340. ул.Салютная 17. с.Гнедын.
Киевская обл. Украина.

+38 067 492 4124.
+38 095 065 8860.

info@okwood.com.ua
www.okwood.com.ua

Местоположения


8PM2+7R Гнедин, Kyiv Oblast