Функции NEWID, ISNULL и COALESCE

Последнее обновление: 29.07.2017

NEWID

Для генерации объекта UNIQUEIDENTIFIER, то есть некоторого уникального значения, используется функция NEWID(). Например, мы можем определить для столбца первичного ключа тип UNIQUEIDENTIFIER и по умолчанию присваивать ему значение функции NEWID:

CREATE TABLE Clients
(
	Id UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
    FirstName NVARCHAR(20) NOT NULL,
    LastName NVARCHAR(20) NOT NULL,
    Phone NVARCHAR(20) NULL,
    Email NVARCHAR(20) NULL
)

INSERT INTO Clients (FirstName, LastName, Phone, Email)
VALUES ('Tom', 'Smith', '+36436734', NULL),
('Bob', 'Simpson', NULL, NULL)

ISNULL

Функция ISNULL проверяет значение некоторого выражения. Если оно равно NULL, то функция возвращает значение, которое передается в качестве второго параметра:

ISNULL(выражение, значение)

Например, возьмем выше созданную таблицу и применим при получении данных функцию ISNULL:

SELECT FirstName, LastName,
		ISNULL(Phone, 'не определено') AS Phone,
		ISNULL(Email, 'неизвестно') AS Email
FROM Clients
Функция ISNULL в T-SQL и SQL Server

COALESCE

Функция COALESCE принимает список значений и возвращает первое из них, которое не равно NULL:

COALESCE(выражение_1, выражение_2, выражение_N)

Например, выберем из таблицы Clients пользователей и в контактах у них определим либо телефон, либо электронный адрес, если они не равны NULL:

SELECT FirstName, LastName,
		COALESCE(Phone, Email, 'не определено') AS Contacts
FROM Clients

То есть в данном случае возвращается телефон, если он определен. Если он не определен, то возвращается электронный адрес. Если и электронный адрес не определен, то возвращается строка "не определено".

Функция COALESCE в T-SQL и SQL Server
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850