rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

Как заменить все значения колонок NULL в таблице?

Больше
7 мес. 1 нед. назад #175 от О.Коровяков
В 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 стоит строка "Неизвестно"

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

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

Весь процесс строительства описан на страницах сайта, но более подробно о технологии, методах строительства, и всех деталях - Вы можете узнать в книге.