我有一个基本的选择查询,它将队列的结果拉入我们的页面。我正在尝试向 where
子句添加一些逻辑,以防止记录在包含一组特定值时显示。
WHERE (
(L.requestType <> 'Check')
AND (L.requestStatus <> 'New Request')
AND (DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) between 0 and 48)
)
在上面的示例中,我不想包含具有全部三个数据点的记录。
在进行一些测试时,它会排除所有“检查”,即使这些记录也不符合其他两项条件。
如何才能使我的 where
子句满足所有条件,而不执行看似 or
的操作?
最佳答案
你需要
WHERE NOT (L.requestType = 'Check'
AND L.requestStatus = 'New Request'
AND (DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) between 0 and 48
)
这相当于
WHERE (L.requestType <> 'Check'
OR L.requestStatus <> 'New Request'
OR DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) not between 0 and 48
)
关于sql - TSQL Where 子句满足多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364915/