Функции NEWID, ISNULL и COALESCE
NEWID
Для генерации объекта UNIQUEIDENTIFIER, то есть некоторого уникального значения, используется функция NEWID(). Например, мы можем определить для столбца первичного ключа тип UNIQUEIDENTIFIER и по умолчанию присваивать ему значение функции NEWID:
1 2 3 4 5 6 7 8 9 10 11 12 | 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, то функция возвращает значение, которое передается в качестве второго параметра:
1 | ISNULL(выражение, значение) |
Например, возьмем выше созданную таблицу и применим при получении данных функцию ISNULL:
1 2 3 4 | SELECT FirstName, LastName, ISNULL(Phone, 'не определено') AS Phone, ISNULL(Email, 'неизвестно') AS EmailFROM Clients |

COALESCE
Функция COALESCE принимает список значений и возвращает первое из них, которое не равно NULL:
1 | COALESCE(выражение_1, выражение_2, выражение_N) |
Например, выберем из таблицы Clients пользователей и в контактах у них определим либо телефон, либо электронный адрес, если они не равны NULL:
1 2 3 | SELECT FirstName, LastName, COALESCE(Phone, Email, 'не определено') AS ContactsFROM Clients |
То есть в данном случае возвращается телефон, если он определен. Если он не определен, то возвращается электронный адрес. Если и электронный адрес не определен, то возвращается строка "не определено".
