繁体   English   中英

仅在“条件为真”时选择-SQL Server 2008

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM