[英]Select only when Condition is true - SQL Server 2008
我有一个ODS表和一个Audit表。 在从ODS表删除任何内容之前,我需要检查Audit表。 现在,我正在这样做(如下)。 在我的执行计划中创建了一个嵌套循环。 我相信SQL Server引擎正在检查每条记录的Audit表(WHERE子句)。 无论如何要编写此代码,以便审核表仅被检查一次,并且我可以针对我的主键执行索引查找而没有嵌套循环?
我在Informatica源限定符中使用它。
SELECT
*Primary Key*
FROM
ODS_Table
WHERE
1 = (SELECT CASE WHEN
*Condition*
THEN 1 ELSE 0 END
FROM AUDIT_TABLE)
谢谢!!
您可以改为使用JOIN
:
SELECT Primary Key
FROM ODS_Table
JOIN AUDIT_TABLE ON *Condition*
这将确保ODS_Table
中的行仅在满足AUDIT_TABLE
上的条件时才返回 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.