Для проверки типов составных полей язык запросов DaJet реализует оператор сравнения типов данных IS. Этот же оператор используется для сравнения на равенство значению NULL.
Кроме этого реализована функция ISNULL(значение1, значение2), где
Для определения кода ссылочного типа и его уникального идентификатора реализованы функции TYPEOF и UUIDOF соответственно.
Пример проверки результата левого соединения на значение NULL:
SELECT
DISTINCT Валюта.Код, Валюта.Наименование
FROM Справочник.Валюты AS Валюта
LEFT JOIN РегистрСведений.КурсыВалют AS КурсыВалют
ON Валюта.Ссылка = КурсыВалют.Валюта
WHERE КурсыВалют.Валюта IS NOT NULL
Пример использования функции ISNULL:
SELECT Валюта.Код AS Код,
Валюта.Наименование AS Имя,
ISNULL(КурсыВалют.Курс, 0.0000) AS Курс,
ISNULL(КурсыВалют.Период, '0001-01-01T00:00:00') AS Дата
FROM Справочник.Валюты AS Валюта
LEFT JOIN РегистрСведений.КурсыВалют AS КурсыВалют
ON Валюта.Ссылка = КурсыВалют.Валюта
ORDER BY Валюта.Код ASC, КурсыВалют.Период ASC
Пример сравнения типов ссылочных данных составного поля (оператор IS):
SELECT Движения.Период,
CASE
WHEN Движения.Регистратор IS Документ.ПоступлениеТоваровУслуг
THEN Поступление.Номер
WHEN Движения.Регистратор IS Документ.РеализацияТоваровУслуг
THEN Реализация.Номер
ELSE ''
END AS НомерДокумента
FROM РегистрНакопления.ТоварыНаСкладах AS Движения
LEFT JOIN Документ.ПоступлениеТоваровУслуг AS Поступление
ON Движения.Регистратор = Поступление.Ссылка
LEFT JOIN Документ.РеализацияТоваровУслуг AS Реализация
ON Движения.Регистратор = Реализация.Ссылка
WHERE Движения.Регистратор IS Документ.ПоступлениеТоваровУслуг
OR Движения.Регистратор IS Документ.РеализацияТоваровУслуг
Пример использования функций TYPEOF и UUIDOF:
SELECT Регистратор,
TYPEOF(Регистратор) AS type,
UUIDOF(Регистратор) AS uuid
FROM РегистрНакопления.ОстаткиТовара
ORDER BY TYPEOF(Регистратор) ASC
Регистратор | type | uuid |
{852:8d40e09c-935c-8ecc-11ed-71076402f3b2} | 852 | 8d40e09c-935c-8ecc-11ed-71076402f3b2 |
{852:8d40e09c-935c-8ecc-11ed-71076402f3b2} | 852 | 8d40e09c-935c-8ecc-11ed-71076402f3b2 |
{852:8d40e09c-935c-8ecc-11ed-71076402f3b2} | 852 | 8d40e09c-935c-8ecc-11ed-71076402f3b2 |
{853:8d40e29c-935c-8ecc-11ed-9d1c03cae1ec} | 853 | 8d40e29c-935c-8ecc-11ed-9d1c03cae1ec |