加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何在“Where”子句中使用“and”和“or”

发布时间:2020-12-12 06:14:05 所属栏目:MsSql教程 来源:网络整理
导读:我有一个基于一组条件收集信息的查询.基本上我想知道一个位置当天是否支付了超过50美元或评论部分中有“过滤器”一词…… 我的查询是: SELECT Store_Id,Paid_Out_Amount,Paid_Out_Comment,Paid_Out_Datetime,Update_UserName,Till_NumberFROM Paid_Out_TbWHE
我有一个基于一组条件收集信息的查询.基本上我想知道一个位置当天是否支付了超过50美元或评论部分中有“过滤器”一词……

我的查询是:

SELECT        Store_Id,Paid_Out_Amount,Paid_Out_Comment,Paid_Out_Datetime,Update_UserName,Till_Number
FROM            Paid_Out_Tb
WHERE        (Store_Id = 1929) AND (Paid_Out_Datetime >= DATEADD(day,DATEDIFF(day,GETDATE()) - 1,0)) AND (Paid_Out_Datetime < DATEADD(day,GETDATE()),0)) AND (Paid_Out_Amount > 50) OR
                         (Paid_Out_Comment LIKE N'%' + 'Filter' + '%')

问题是它返回460结果,应该只返回2.

解决方法

您需要将Paid_Out_Amoutn和Paid_Out_Comment条件包装在第二组括号中:
SELECT Store_Id,Till_Number 
FROM Paid_Out_Tb 
WHERE (Store_Id = 1929) AND (Paid_Out_Datetime >= 
    DATEADD(day,0)) AND 
    (Paid_Out_Datetime < DATEADD(day,0)) AND 
    (
        (Paid_Out_Amount > 50) OR (Paid_Out_Comment LIKE N'%' + 'Filter' + '%')
    )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读