Exists (DMX)

如果指定的子查询至少返回一行,则返回 true。

语法

EXISTS(<subquery>)

参数

  • subquery
    SELECT * FROM <列名> [WHERE <谓词列表>] 形式的 SELECT 语句。

结果类型

如果子查询返回的结果集至少包含一行,则返回 true;否则,返回 false。

注释

可以在 EXISTS 前面使用 NOT 关键字:例如 WHERE NOT EXISTS (<subquery>)。

添加到 EXISTS 的子查询参数中的列的列表是无关紧要的;函数仅检查满足条件的行是否存在。

示例

可使用 EXISTS 和 NOT EXISTS 检查嵌套表中的条件。这在创建控制定型或测试数据挖掘模型所使用的数据的筛选器时,将很有用。有关详细信息,请参阅为挖掘模型创建筛选器(Analysis Services – 数据挖掘)

以下示例基于您在数据挖掘基础教程中创建的 [Association] 挖掘结构和挖掘模型。该查询仅返回其中客户至少购买一个 patch kit 的那些事例。

SELECT * FROM [Association].CASES
WHERE EXISTS
(
SELECT * FROM [v Assoc Seq Line Numbers]
WHERE [[Model] = 'Patch kit'
)

查看此查询返回的相同数据的另一种方法是:在关联查看器中打开模型,右键单击项集 Patch kit = Existing,选择**“钻取”选项,然后选择“仅模型事例”**。