Exists (DMX)
指定されたサブクエリから少なくとも 1 行が返される場合に、true を返します。
構文
EXISTS(<subquery>)
引数
- subquery
SELECT * FROM <column name> [WHERE <predicate list>] 形式の SELECT ステートメント。
結果のデータ型
サブクエリから返された結果セットに少なくとも 1 行が含まれる場合は true を返します。それ以外の場合は false を返します。
説明
EXISTS の前にキーワード NOT を使用できます。たとえば、WHERE NOT EXISTS (<subquery>) のようにします。
EXISTS のサブクエリの引数に追加する列の一覧は関係ありません。関数は条件に一致する行が存在するかどうかのみをチェックします。
使用例
入れ子になったテーブル内の条件のチェックに EXISTS および NOT EXISTS を使用できます。 これは、データ マイニング モデルのトレーニングやテストに使用するデータを制御するフィルターを作成する場合に役立ちます。 詳細については、「マイニング モデルのフィルター選択 (Analysis Services - データ マイニング)」を参照してください。
次の例は、「基本的なデータ マイニング チュートリアル」で作成した [Association] マイニング構造およびマイニング モデルを基にしています。 このクエリでは、顧客が Patch Kit を少なくとも 1 つ購入したケースのみを返します。
SELECT * FROM [Association].CASES
WHERE EXISTS
(
SELECT * FROM [v Assoc Seq Line Numbers]
WHERE [[Model] = 'Patch kit'
)
アソシエーション ビューアーでモデルを開き、アイテムセット [Patch kit = Existing] を右クリックして [ドリルスルー] オプションをクリックし、[モデル ケースのみ] をクリックしても、このクエリで返されるのと同じデータが表示されます。