T-SQL:Where子句似乎被忽略

Bla*_*ite 2 sql t-sql sql-server

我正在使用SQL Server,它似乎返回在我的谓词中过滤了AGAINST的行.我已经将我的查询缩小到一些小但返回错误数据的东西.

DECLARE @ConnectMagicNumber BIGINT;
SET @ConnectMagicNumber = 4294967296;

SELECT DISTINCT
FLOOR(pe.ID_PE/@ConnectMagicNumber) as 'PE-StaNo',
pe.FName, pe.VName
FROM [dbo].[CRM_CPPE] pe 
WHERE 
-- Predicate below is not being applied
(FLOOR(pe.ID_PE/@ConnectMagicNumber)) > 5000
--
AND pe.FName = 'Augendoppler' OR (pe.FName = 'Batinic' AND pe.VName ='Drasco')
Run Code Online (Sandbox Code Playgroud)

当我明确过滤那些大于5000的那一行时,为什么PE-StaNo为1的那一行会回来.

任何有关我缺少的帮助将不胜感激.我动摇了我无法正确过滤的核心.

错误的SQL查询

Sea*_*nge 8

你在这里缺少一些括号.您需要记住操作的顺序.

WHERE 
-- Predicate below is not being applied
(FLOOR(pe.ID_PE/@ConnectMagicNumber)) > 5000
--
AND (pe.FName = 'Augendoppler' OR (pe.FName = 'Batinic' AND pe.VName ='Drasco'))
Run Code Online (Sandbox Code Playgroud)