如何在一个sql语句中对同一列或不同列使用'BETWEEN'两次condetion

m.b*_*eem 1 sql jdbc derby between javadb

这是sql语句只给出一个值

SELECT count(pn1) FROM pledges
WHERE date1
BETWEEN '2011-05-05' AND '2011-06-06'
Run Code Online (Sandbox Code Playgroud)

我想在同一列或同一个表中的不同列中多次使用"之间"

例如,我想在date1中多次使用它,或者我想将它用于具有不同范围的date1和date2

注意:我正在使用java DB Derpy(JDBC-Derby)

Joe*_*lli 6

同一列不止一次:

SELECT count(pn1) 
    FROM pledges
    WHERE date1 BETWEEN '2011-05-05' AND '2011-06-06'
       OR date1 BETWEEN '2011-07-05' AND '2011-08-06'
Run Code Online (Sandbox Code Playgroud)

两个不同的列:

SELECT count(pn1) 
    FROM pledges
    WHERE date1 BETWEEN '2011-05-05' AND '2011-06-06'
      AND date2 BETWEEN '2011-05-05' AND '2011-06-06'
Run Code Online (Sandbox Code Playgroud)

编辑:根据评论,也许你正在寻找这样的东西?

SELECT SUM(CASE WHEN date1 BETWEEN '2011-05-05' AND '2011-06-06' THEN 1 ELSE 0) END AS Count1,
       SUM(CASE WHEN date1 BETWEEN '2011-07-05' AND '2011-08-06' THEN 1 ELSE 0) END AS Count2
    FROM pledges
    WHERE date1 BETWEEN '2011-05-05' AND '2011-06-06'
       OR date1 BETWEEN '2011-07-05' AND '2011-08-06'
Run Code Online (Sandbox Code Playgroud)