在SQL Server中,这两个AND操作符有什么区别?

AND (
     (mmd.TerminationDate IS NOT NULL AND mmd.TerminationDate >= '01-Jan-2019')
     OR mmd.TerminationDate IS NULL
)
AND (mmd.TerminationDate IS NULL OR mmd.TerminationDate >= '01-Jan-2020')

解决方案:

假设字面日期应该是相同的,这两个条件做的是同样的事情–即允许日期为空或大于1月1日。

第一个表达式是不必要的多余的。

(mmd.TerminationDate is NOT NULL and mmd.TerminationDate >= '01-Jan-2019') 
or mmd.TerminationDate is null)

如果 TerminationDatenull,那么它不可能大于1月1日,所以第一个子条件实际上归结为 mmd.TerminationDate >= '01-Jan-2019'.

不相关的说明:虽然SQL Server对日期格式的理解相当灵活,但我会用更标准的格式来表示1月1日,比如。

mmd.TerminationDate is Null OR mmd.TerminationDate >= '2019-01-01'

给TA打赏
共{{data.count}}人
人已打赏
未分类

检查Ansible中是否存在一个元素

2022-9-10 2:23:42

未分类

React路由器在每次更新时都会卸载和重装子组件。

2022-9-10 2:23:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索