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


IS [NOT] NULL (язык Entity SQL)

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

expression IS [ NOT ] NULL

Аргументы

  • expression
    Любое допустимое выражение запроса. Не может быть коллекцией, содержать элементы коллекции или тип записи со свойствами типа коллекции.
  • NOT
    Выполняет отрицание результата IS [NOT] NULL, имеющего тип Boolean.

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

Значение 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 Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Следуйте инструкциям в разделе Как выполнить запрос, возвращающий результаты типа StructuralType (EntityClient).

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

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

Далее показан вывод.

ProductID: 317
Name: LL Crankarm
ProductNumber: CA-5965
MakeFlag: False
ProductID: 318
Name: ML Crankarm
ProductNumber: CA-6738
MakeFlag: False
ProductID: 319
Name: HL Crankarm
ProductNumber: CA-7457
MakeFlag: False
ProductID: 320
Name: Chainring Bolts
ProductNumber: CB-2903
MakeFlag: False
ProductID: 321
Name: Chainring Nut
ProductNumber: CN-6137
MakeFlag: False
...

См. также

Основные понятия

Операторы сравнения (язык Entity SQL)
Справочник по Entity SQL