【发布时间】:2021-03-21 11:22:04
【问题描述】:
我有两个功能。我需要根据一个 BIT 值来决定是否加入这两个。
ON APEL.data_Period_dataination_Lookup_ID = CCEL.data_Period_dataination_Lookup_ID
INNER JOIN markcommon.GetPredecessordatadataIds() AS PIDS
IF @Combined_Flag=1
BEGIN
ON PIDS.data_Period_dataination_Identifier = APEL.data_Period_dataination_Identifier
AND PIDS.data_Period_Identifier = APL.data_Period_Identifier
END
基本上
如果 BIT=0 加入函数 1,否则加入函数 2
我尝试放置一个 IF 子句 .. 但它似乎不起作用。正确的做法是什么?
【问题讨论】:
-
@DaleK 然后加入另一个函数。
-
@DaleK 我被建议使用 if 条件和 temptable 而不是 joins。
-
谁和为什么?您必须有一个非常复杂的查询,其中包含很多行才能需要该解决方案恕我直言。关于 SQL 的一件事是您不希望花费太多时间来尝试先发制人的性能问题。内置的优化器通常非常好。如果存在性能问题,那么您需要找出解决方法。
-
@DaleK 我的架构师,其中一个数据将始终为空,我会不必要地加入......她说......
-
请引用你为
ifclause找到的文档。
标签: sql sql-server tsql join