Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Microsoft SQL Server - Общие вопросы

Все примеры / Общие вопросы

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

Автор: Алексей Немиро | добавлено: 08.02.2011, 20:44 | просмотров: 5342 (1+) | комментариев: 0 | рейтинг: *x1
В 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 стоит строка "Неизвестно"
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики