【发布时间】:2014-10-02 15:26:58
【问题描述】:
我的查询条件如下:
WHERE A.event_date BETWEEN B.start_date AND B.end_date
复杂之处在于,如果B.start_date 为NULL,则意味着远古时代,同样B.end_date 为NULL,则意味着现在。所以我还是想选择A.event_date > B.start_date和B.end_date为NULL的行,例如。
冗长的方法是
WHERE A.event_date BETWEEN B.start_date AND B.end_date
OR (A.event_date > B.start_date AND B.end_date IS NULL)
OR (B.start_date IS NULL AND A.event_date < B.end_date)
有没有更优雅的解决方案(特别是因为在一个查询中我有多个这样的条件)
【问题讨论】: