【问题标题】:SQL AND OR querySQL AND OR 查询
【发布时间】:2015-03-25 22:10:12
【问题描述】:

我正在尝试从我们的客户服务查询中选择一些消息,其中 Mmessage 所有者是 ABC,数据是 LIKE ABCDEF AND message ... 并且消息是从客户到 CSservice 或从 CSservice 到客户。

我该怎么做?

SELECT Date, From, To, Data 
FROM Ccustomers WITH (NoLock)
WHERE MSGowner = 'ABC' AND Data LIKE '%ABCDEF%' AND 
([From] ='Customer' AND [To] = 'CSservice') OR ([From] ='CSservice' AND [To] = 'Customer') 

ORDER by Date

【问题讨论】:

  • 对于 jergen d 的答案加 1,您只需要在 OR 条件周围加上一组括号。

标签: sql qsqlquery


【解决方案1】:
SELECT Date, From, To, Data 
FROM Ccustomers WITH (NoLock)
WHERE MSGowner = 'ABC' 
AND Data LIKE '%ABCDEF%' 
AND 
(
   ([From] = 'Customer'  AND [To] = 'CSservice') OR 
   ([From] = 'CSservice' AND [To] = 'Customer')
)
ORDER by Date

【讨论】:

  • 非常感谢。实际上我在发布消息几秒钟后就知道了这一点:) 还在学习 SQL :)
【解决方案2】:

您的查询基本正确。但是您必须考虑到and 连接比or 更“强”。要获得所需的输出,您需要设置括号。

试试这个:

SELECT Date, [From], [To], Data 
FROM Ccustomers WITH (NoLock)
WHERE MSGowner = 'ABC' 
AND Data LIKE '%ABCDEF%' 
AND (([From] = 'Customer'  AND [To] = 'CSservice') OR ([From] = 'CSservice' AND [To] = 'Customer'))
ORDER BY Date;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    相关资源
    最近更新 更多