You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何OR条件会使SQL查询的WHERE筛选规则失效?

修正后的SQL语句及问题解析

你的SQL存在两处语法错误,同时逻辑括号的使用不符合需求:

  1. 语法错误:

    • WHERE子句中AND opened_at >= '2022 3-1- 00:00:00')多了一个多余的右括号,需删除
    • OR C.dv_subcategory ='Research;中的字符串未闭合,应改为'Research'
  2. 逻辑优先级问题:
    你需要所有结果都满足dv_assignment_group IN ('Support', 'Payment'),在此基础上再筛选满足日期条件或子分类为'Research'的数据。因此需将日期条件和OR子句用括号包裹,确保dv_assignment_group的筛选作用于所有结果。

修正后的SQL如下:

SELECT TOP 50
    C.task
    , C.dv_state
    , C.opened_at
    , C.dv_assignment_group
    , C.dv_subcategory
FROM [dbo].[sn_customer_task] C WITH (NOLOCK)
WHERE C.dv_assignment_group IN ('Support', 'Payment') 
AND (opened_at >= '2022-03-01 00:00:00' OR C.dv_subcategory = 'Research')

另外建议将日期格式改为标准的'YYYY-MM-DD HH:MM:SS'形式,避免数据库解析日期时出现异常。

内容的提问来源于stack exchange,提问作者user21265764

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:47:04