IS [NOT] NULL (Entity SQL)

确定查询表达式是否为 null。

expression IS [ NOT ] NULL

参数

  • expression
    任何有效的查询表达式。不可以是集合,不可含有集合成员,也不可以是具有集合类型属性的记录类型。
  • NOT
    对 IS [NOT] NULL 的 Boolean 结果取反。

返回值

如果 expression 返回 null,则为 true;否则为 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

返回 truefalse

ComplexType IS NULL

引发错误。

RowType IS NULL

引发错误。

示例

下面的 Entity SQL 查询使用 IS NOT NULL 运算符来确定查询表达式是否不为 null。此查询基于 AdventureWorks 销售模型。若要编译并运行此查询,请执行下列步骤:

  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 参考