我有一个基本的选择查询,它将队列的结果拉入我们的页面。我试图在where
子句中添加一些逻辑,以阻止记录在包含一组特定值时显示。
WHERE (
(L.requestType <> 'Check')
AND (L.requestStatus <> 'New Request')
AND (DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) between 0 and 48)
)
在上面的示例中,我不想包含具有所有三个数据点的记录。
在进行某些测试时,它会排除所有&#34;支票&#34;例如,即使这些记录也不符合其他两个标准。
如何让我的where
条款符合所有条件,而不是看似or
的内容?
答案 0 :(得分:4)
你需要
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
)