

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# BETWEEN 範囲条件
<a name="range_condition-spark"></a>

`BETWEEN` 条件では、キーワード `BETWEEN` および `AND` を使用して、値が範囲内に入っているかどうか式をテストします。

## 構文
<a name="range_condition-synopsis"></a>

```
expression [ NOT ] BETWEEN expression AND expression
```

式は、数値データ型、文字データ型、または日時データ型とすることができますが、互換性を持つ必要があります。範囲は両端を含みます。

## 例
<a name="range_condition-examples"></a>

最初の例では、2、3、または 4 のいずれかのチケットの販売を登録したトランザクション数をカウントします。

```
select count(*) from sales
where qtysold between 2 and 4;

count
--------
104021
(1 row)
```

範囲条件は開始値と終了値を含みます。

```
select min(dateid), max(dateid) from sales
where dateid between 1900 and 1910;

min  | max 
-----+-----
1900 | 1910
```

範囲条件内の最初の式は最小値、2 番目の式は最大値である必要があります。次の例は、式の値のせいで、常にゼロ行を返します。

```
select count(*) from sales
where qtysold between 4 and 2;

count
-------
0
(1 row)
```

しかし、NOT 修飾子を加えると、論理が反転し、すべての行がカウントされます。

```
select count(*) from sales
where qtysold not between 4 and 2;

count
--------
172456
(1 row)
```

次のクエリは、20000～50000 席を備えた会場のリストを返します。

```
select venueid, venuename, venueseats from venue
where venueseats between 20000 and 50000
order by venueseats desc;

venueid |       venuename               | venueseats
---------+-------------------------------+------------
116 | Busch Stadium                 |      49660
106 | Rangers BallPark in Arlington |      49115
96 | Oriole Park at Camden Yards   |      48876
...
(22 rows)
```

次の例は、日付値に BETWEEN を使用する方法を示しています。

```
select salesid, qtysold, pricepaid, commission, saletime 
from sales 
where eventid between 1000 and 2000 
   and saletime between '2008-01-01' and '2008-01-03'
order by saletime asc;

salesid | qtysold | pricepaid | commission |   saletime
--------+---------+-----------+------------+---------------
  65082 |       4 |       472 |       70.8 | 1/1/2008 06:06
 110917 |       1 |       337 |      50.55 | 1/1/2008 07:05
 112103 |       1 |       241 |      36.15 | 1/2/2008 03:15
 137882 |       3 |      1473 |     220.95 | 1/2/2008 05:18
  40331 |       2 |        58 |        8.7 | 1/2/2008 05:57
 110918 |       3 |      1011 |     151.65 | 1/2/2008 07:17
  96274 |       1 |       104 |       15.6 | 1/2/2008 07:18
 150499 |       3 |       135 |      20.25 | 1/2/2008 07:20
  68413 |       2 |       158 |       23.7 | 1/2/2008 08:12
```

BETWEEN の範囲は包括的ですが、日付はデフォルトで 00:00:00 の時刻値であることに注意してください。サンプルクエリで有効な 1 月 3 日の行は、販売時間が `1/3/2008 00:00:00` の行だけです。