Страницы

Поиск по вопросам

понедельник, 24 сентября 2018 г.

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

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 Email
FROM Clients
Функция ISNULL в T-SQL и SQL Server

COALESCE

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

Комментариев нет:

Отправить комментарий