次の方法で共有


IS [NOT] NULL (Entity SQL)

クエリ式が NULL かどうかを調べます。

expression IS [ NOT ] NULL

引数

  • expression
    任意の有効なクエリ式。コレクションにすることはできません。また、コレクション メンバや、コレクション型のプロパティを持つレコード型を含めることはできません。
  • NOT
    IS [NOT] NULL の Boolean の結果を否定します。

戻り値

expression によって NULL が返される場合は true、それ以外の場合は false です。

解説

外部結合の要素が NULL かどうかを確認するには、IS 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 Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。

  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 リファレンス