选择具有多个between子句的记录

时间:2014-01-17 05:32:36

标签: sql sql-server tsql

我无法让sql STATEMENT工作。

我想选择BETWEEN日期1和日期2以及

的记录

BETWEEN日期3和日期4的记录。

此查询未产生任何结果。

(单引号中的值只是伪代码)

SELECT  *
FROM    dbo.Items
WHERE   ( ( PostDate BETWEEN Date1 AND Date2 )
          AND ( PostDate BETWEEN Date3 AND Date4 )
        )

回读这个查询听起来好像我要求db给我

日期1和日期2之间的记录,但也包括日期3和日期4之间的记录,

没有任何意义。

我将如何翻译*给我日期1和日期2之间的记录和

一批中日期3和日期4之间的记录

2 个答案:

答案 0 :(得分:2)

在这种情况下你的'AND'条件是错误的。改为使用'OR'条件

SELECT * FROM dbo.Items WHERE ((PostDate BETWEEN Date1 AND Date2) OR (PostDate BETWEEN Date3 AND Date4))

答案 1 :(得分:0)

尝试使用union并将此查询分为2个查询。

SELECT * FROM dbo.Items WHERE PostDate BETWEEN Date1 AND Date2 
union
SELECT * FROM dbo.Items WHERE PostDate BETWEEN Date3 AND Date4