SQLの基本 – WHERE句を用いた数値条件指定ガイド【初心者向け基礎ガイド】
【記事作成者】 酒井 裕麻 (株式会社Bistro 代表取締役社長)
SQLで用いるWHERE句とは
SQL(エスキューエル)では、データベースに保存された大量の情報から必要なデータだけを取り出したり、更新したり、削除したりできます。
一方で例えば購入履歴などのデータでは、データが何百万件と存在していることが多いため、すべてのデータを抽出するのではなく“どれを使うか” を指定することが重要です。
そこで使用するのがWHERE(ウェア)句 です。
WHERE句を使用することで、処理を行うデータの条件を指定することができるようになります。
例えば、購入履歴のデータベースで2025年11月1日以降のデータだけ見たいといった処理が可能になります。
(※参考 : SQL – Wikipedia)
本記事の内容
この記事では、WHERE句でよく使う条件の書き方を、代表的なケースごとにわかりやすく解説します。
-
「〜以上」「〜以下」などの数値条件
-
日付を使った絞り込み
-
複数条件の組み合わせ(AND / OR) … など
WHERE句は、実務のSQLでも必ず登場します。
ここで一通りのパターンを押さえておくことで、今後のデータ抽出や集計がぐっと楽になります。
まずはこの記事で、WHERE句の基礎をしっかり身につけていきましょう。

参考記事
SQLの基本 : まずはこれだけ覚えよう【初心者向け基礎ガイド】
SQL HAVING句の使い方【実行コード付き】
条件設定の基本構文
SQLでデータを抽出するときの基本構造は次のようになります。
SELECT 抽出したいカラム FROM 抽出元のデータベース名 WHERE 抽出条件で使用するカラム 演算子(=/</>など) 条件値
SELECTとFROMとWHEREの順番は決まっているので、上記の構造を守ってSQLを作成してください。
数値に対する条件設定
WHERE句を使った条件設定の中でも、最もよく登場するのが「数値」に対する条件です。
売上金額、商品数、ポイント数、再生回数など、どのデータベースでも数値は頻出です。
まずは、この数値に対する条件指定の基本を押さえていきましょう。
よく使う数値条件の例
たとえば以下のような条件が定番です。
-
金額が1000円以上
-
購入回数が3回以下
-
ポイントが0より大きいデータだけ
これらはすべて、WHERE句で簡単に書けます。
実際の抽出SQL例
商品別・日別の売上データ が
sample_dataというテーブル名でデータベースに保存されているケースを考えてみましょう。
| date | product | sales_amount |
| 2025/11/21 | beef_1 | ¥1,200 |
| 2025/11/21 | beef_2 | ¥800 |
| 2025/11/21 | beef_1 | ¥1,200 |
| 2025/11/21 | beef_1 | ¥1,200 |
| 2025/11/22 | fish_1 | ¥300 |
| 2025/11/22 | beef_3 | ¥3,000 |
| 2025/11/22 | fish_1 | ¥300 |
| 2025/11/22 | fish_1 | ¥300 |
| 2025/11/22 | beef_3 | ¥3,000 |
| 2025/11/23 | fish_2 | ¥1,600 |
このとき、金額(数値データ)に対して条件を設定するケースを考えてみましょう。
たとえば、売上データの中から 「金額が1,000円以上のデータだけを抽出」 という場合のSQLは次のように書けます。
SELECT * FROM sample_data WHERE sales_amount >= 1000
この例では
- sales_amount : 抽出条件で使用するカラム
- >= : 演算子
- 1000 : 条件値
となっており、演算子を用いて条件値以上という設定を行いました。
数値の条件設定で使用できる演算子
WHERE句で数値に条件を付けるときは、以下の演算子を使います。
それぞれの意味をしっかり押さえておきましょう。
| 演算子 | 読み方 | 意味 | 使用例 |
|---|---|---|---|
<= |
以下 | 指定した値「以下」のデータを抽出 | price <= 1000 |
>= |
以上 | 指定した値「以上」のデータを抽出 | price >= 1000 |
< |
より小さい | 指定した値より「小さい」データを抽出 | price < 1000 |
> |
より大きい | 指定した値より「大きい」データを抽出 | price > 1000 |
= |
等しい | 指定した値と「等しい」データを抽出 | price = 1000 |
BETWEEN X AND Y |
ベトウィーン | X 以上 Y 以下の範囲で抽出 | price BETWEEN 1000 AND 5000 |
これらの演算子を組み合わせることで、
「この金額だけ」「この金額より大きい」「この範囲だけ」
といった柔軟な抽出が簡単に行えるようになります。
日付に対する条件設定
日付はデータ分析でもよく使う条件のひとつです。
「特定の日付以降のデータだけ欲しい」「月末だけ取りたい」など、実務では必ず登場します。
基本構文は数値と同じく、比較演算子を使って指定します。
2025年11月22日から2025年11月23日のデータに対して条件を設定するケースを考えてみましょう。
この時、演算子はBETWEENを用いることができるので以下のようなSQLで記載することができます。
SELECT * FROM sample_data WHERE date BETWEEN '2025-11-22' AND '2025-11-23'
AND / OR / NOT を使った複合条件
WHERE句では、1つの条件だけでなく 複数の条件を組み合わせる ことができます。
そのときに使うのが AND / OR / NOT という3つの論理演算子です。
AND(かつ条件)
すべての条件を満たすデータだけ を抽出します。
例:
「金額が1000円以上 かつ 日付が2025年11月22日以降」
SELECT * FROM sample_data WHERE sales_amount > 1000 AND date >= '2025-11-22'
➡ 両方の条件を満たした行のみ抽出されます。
OR(または条件)
どちらか一方でも条件を満たしていれば抽出します。
例:
「金額が1000円以上または日付が2025年11月22日以降」
SELECT
*
FROM
sample_data
WHERE
sales_amount > 1000
OR date >= '2025-11-22'
➡ どちらかを含んでいればOK。
NOT(否定条件)
条件に当てはまらないものを抽出します。
例:
「日付が2025年11月22日以降でないデータ」
SELECT * FROM sample_data WHERE NOT date >= '2025-11-22'
(NOT LIKE と書くこともできます)
AND と OR を組み合わせるときの注意点
組み合わせる場合は、()(括弧)を使って意図を明確にすることが重要です。
例:
「金額が1000円以上 かつ(2025年11月18日以前 または 2025年11月22日以降)」
SELECT
*
FROM
sample_data
WHERE
sales_amount >= 1000
AND (
date <= '2025-11-18'
OR date >= '2025-11-22'
)
➡ 括弧をつけることで 条件の優先順位を明確化 できます。
ここで学んだ
-
数値の条件
-
日付の条件
-
AND / OR / NOT の複合条件
これらは実務のデータ抽出で必ず使う基礎スキルです。
まずはこのパターンを自由に組み合わせられるようになれば、SQLでのデータ抽出が一気にスムーズになります。
投稿者プロフィール

- 酒井 裕麻株式会社Bistro - 代表取締役社長
-
慶應義塾大学 理工学部 物理情報工学科 卒業。
外資系広告代理店 McCann Erickson に新卒で入社し、アナリストとしてマーケティングリサーチからマーケティングミックスモデリング(MMM)まで幅広い分析業務に従事。
その後独立し、データマーケティングカンパニー 株式会社Bistro を設立。
現在は大手通信キャリア、銀行、IT企業、広告代理店など幅広いクライアントに対し、データ分析基盤の構築からBI導入、広告効果分析・最適化まで、データ活用に関する包括的な支援を行っている。
最新の投稿
- 2025年11月24日SQLSQLの基本 – WHERE句を用いた数値条件指定ガイド【初心者向け基礎ガイド】
- 2025年11月13日SQLSQLの基本 – まずはこれだけ覚えよう【初心者向け基礎ガイド】
- 2025年11月11日RRで行うハッシュ化【実行コード付き】
- 2025年10月29日SQLSQL HAVING句の使い方【実行コード付き】
📩 データに関するお問い合わせはお気軽にどうぞ
貴社の課題に合わせた最適なデータ活用をご提案します。
ご相談は無料です。お気軽にお問い合わせフォームよりご連絡ください。
このコンテンツをシェアする
