SBB*_*SBB 2 sql t-sql sql-server stored-procedures conditional-statements
我有一个基本的选择查询,它将队列的结果拉入我们的页面。我试图在where子句中添加一些逻辑,以防止记录在包含一组特定值时显示。
WHERE (
(L.requestType <> 'Check')
AND (L.requestStatus <> 'New Request')
AND (DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) between 0 and 48)
)
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我不想包含具有所有三个数据点的记录。
例如,在进行某些测试时,它会排除所有“检查”,即使这些记录不符合其他两项标准。
我怎样才能让我的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
)
Run Code Online (Sandbox Code Playgroud)
这相当于
WHERE (L.requestType <> 'Check'
OR L.requestStatus <> 'New Request'
OR DATEDIFF(hour, CAST(L.requestDate AS DATE), GETDATE()) not between 0 and 48
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |