как использовать условие «МЕЖДУ» два раза в одном выражении SQL для одного и того же столбца или различных столбцов - PullRequest
1 голос
/ 07 мая 2011

это SQL-оператор дает только одно значение

SELECT count(pn1) FROM pledges
WHERE date1
BETWEEN '2011-05-05' AND '2011-06-06'

я хочу использовать «между» более одного раза для одного и того же столбца или для разных столбцов в одной таблице

например, я хочу использовать его в date1 более одного раза или я хочу использовать его для date1 и date2 с другим диапазоном

ПРИМЕЧАНИЕ: я использую java DB Derpy (JDBC-Derby)

1 Ответ

6 голосов
/ 07 мая 2011

Более одного раза для одного столбца:

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'

Два разных столбца:

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'

РЕДАКТИРОВАТЬ : Исходя из комментариев, возможно, вы ищете что-то подобное вместо этого?

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'
...