Поделиться через


ISNULL (Entity SQL)

Определяет, имеет ли выражение запроса значение NULL.

Синтаксис

expression IS [ NOT ] NULL

Аргументы

expression Любое допустимое выражение запроса. Нельзя быть коллекцией, иметь элементы коллекции или тип записи со свойствами типа коллекции.

НЕ отрицает EDM. Логический результат IS NULL.

Возвращаемое значение

true Значение expression NULL; в противном случае false.

Замечания

Используется IS NULL для определения значения NULL элемента внешнего соединения:

select c
      from LOB.Customers as c left outer join LOB.Orders as o
                              on c.ID = o.CustomerID
      where o is not null and o.OrderQuantity = @x

Используется IS NULL для определения фактического значения элемента:

select c from LOB.Customer as c where c.DOB is not null

В следующей таблице показано поведение IS NULL некоторых шаблонов. Все исключения создаются на стороне клиента перед вызовом поставщика:

Рисунок Поведение
NULL IS NULL Возвращает true.
TREAT (null AS EntityType) IS NULL Возвращает true.
TREAT (null AS ComplexType) IS NULL Вызывает ошибку.
TREAT (null AS RowType) IS NULL Вызывает ошибку.
EntityType IS NULL Возвращает значение true или false.
ComplexType IS NULL Вызывает ошибку.
RowType IS NULL Вызывает ошибку.

Пример

Следующий запрос Entity SQL использует оператор IS NOT NULL, чтобы определить, не имеет ли выражение null. Запрос основан на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.

  1. Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты структурного типа".

  2. Передайте следующий запрос в качестве аргумента в ExecuteStructuralTypeQuery метод:

SELECT VALUE product FROM AdventureWorksEntities.Products 
    AS product WHERE product.Color IS NOT NULL

См. также