我一直认为不存在是不是存在的方式,而不是使用不处于条件状态.但是,我对我一直在使用的查询进行比较,我注意到Not In条件的执行实际上似乎更快.任何有关为什么会出现这种情况的见解,或者如果我在此之前做出一个可怕的假设,我将不胜感激!
问题1:
SELECT DISTINCT
a.SFAccountID, a.SLXID, a.Name FROM [dbo].[Salesforce_Accounts] a WITH(NOLOCK)
JOIN _SLX_AccountChannel b WITH(NOLOCK)
ON a.SLXID = b.ACCOUNTID
JOIN [dbo].[Salesforce_Contacts] c WITH(NOLOCK)
ON a.SFAccountID = c.SFAccountID
WHERE b.STATUS IN ('Active','Customer', 'Current')
AND c.Primary__C = 0
AND NOT EXISTS
(
SELECT 1 FROM [dbo].[Salesforce_Contacts] c2 WITH(NOLOCK)
WHERE a.SFAccountID = c2.SFAccountID
AND c2.Primary__c = 1
);
Run Code Online (Sandbox Code Playgroud)
问题2:
SELECT
DISTINCT
a.SFAccountID FROM [dbo].[Salesforce_Accounts] a WITH(NOLOCK)
JOIN _SLX_AccountChannel b WITH(NOLOCK)
ON a.SLXID = b.ACCOUNTID
JOIN [dbo].[Salesforce_Contacts] c WITH(NOLOCK)
ON a.SFAccountID = c.SFAccountID …Run Code Online (Sandbox Code Playgroud) 好的,希望我不要过于复杂.我知道我可以使用timer.Enabled = false或timer.Stop()来停止计时器,但我想将一个属性合并到我的主播放器类中,这将控制计时器.举例来说,如果我的球员有一个布尔属性"愈合,"我想,当玩家的属性设置为医治== true时,计时器开始,当player.healing属性更改为愈合= = false,让计时器停止.这样做的原因是,我想我的游戏主循环继续运行,而我的玩家继续玩游戏,医治,以及当采取动作在游戏中,或者当玩家达到完全健康,定时器停止.
目前我有一个运行每个计时器滴答的功能,并评估播放器是否完全健康,如果是,则停止计时器.但是,我只是认为能够将bool属性从false转换为true,反之亦然,会更有用.非常感谢任何帮助/想法/建议!