我正在使用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')
为什么当我明确过滤掉那些大于5000的PE-StaNo为1时,那个行回来了。
对我所缺少的任何帮助都将不胜感激。我动摇了我无法正确过滤的核心。
答案 0 :(得分:7)
你在这里缺少一些括号。您需要记住操作的顺序。
size_hint_y=None
答案 1 :(得分:2)
这是错误的部分:
ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorListCopy | filter: '!' + employeeInfo.id"
由于Batinic在FName中,因此返回该行。
答案 2 :(得分:0)
因为,实质上,如果没有明确的括号,您的查询就是
...
FROM [dbo].[CRM_CPPE] pe
WHERE
((FLOOR(pe.ID_PE/@ConnectMagicNumber)) > 5000 AND pe.FName = 'Augendoppler')
OR (pe.FName = 'Batinic' AND pe.VName ='Drasco')