【发布时间】:2013-12-17 13:18:20
【问题描述】:
我有一个 ODS 表和一个审计表。在从 ODS 表中删除任何内容之前,我需要检查审计表。但是,现在,我正在这样做(如下);这在我的执行计划中创建了一个嵌套循环。我相信 SQL 服务器引擎正在检查每条记录的审计表(WHERE 子句)。有没有办法写这个,所以审计表只检查一次,我可以在没有嵌套循环的情况下对我的主键执行索引搜索?
我在 Informatica 源限定符中使用它。
SELECT
*Primary Key*
FROM
ODS_Table
WHERE
1 = (SELECT CASE WHEN
*Condition*
THEN 1 ELSE 0 END
FROM AUDIT_TABLE)
谢谢!!
【问题讨论】:
-
您可以使用存储过程来满足这种需求,并将来自 AUDIT_TABLE 的结果存储在变量中,不是吗?
-
这肯定行得通,但我需要它在一个选择语句中执行。
标签: sql sql-server-2008 informatica