我需要根据以下几点获取一组记录:
- 如果 (
startdateandendate不为 null 则opendate应该在startdatean之间d enddate) 或 (closedate应该在startdateand之间enddate) - 如果
startdate不为空且enddate为空则opendate = startdate - 如果
startdate为空enddate且不为空,则closedate = enddate - 如果两者都
startdate为enddate空,那么它应该检索所有数据
我使用下面的查询尝试了这个,但它只满足第 2 点到第 4 点。
Select * From CheckDateValues C
Where
1 = 1 and
C.OPenDate >= Case
When (@OpenDate IS NULL) THEN C.OpenDate Else @OpenDate
End
and
C.CloseDate <= Case
When (@CloseDate IS NULL) THEN C.CloseDate Else @CloseDate
End
我不确定如何编写查询以使第 1 点也能正常工作。