• ブログ
  • >
  • [SQLの基本]条件指定入門: WHERE IN, WHERE NOT IN, BETWEEN, LIKE, NOT LIKEの使い方

SQLの条件指定入門:WHERE IN, WHERE NOT IN, BETWEEN, LIKE, NOT LIKEの使い方

投稿日:

はじめに

SQLでデータを操作する際、特定の条件に一致するデータを抽出することがよくあります。今回は、条件指定の方法として「WHERE IN」「WHERE NOT IN」「BETWEEN」「LIKE」「NOT LIKE」について詳しく解説します。これらの条件指定を使用することで、複雑なクエリを簡潔に記述することができます。

WHERE IN

WHERE IN句は、指定したリスト内のいずれかの値に一致する行を選択するために使用されます。複数の値に対して一度に条件を適用したい場合に便利です。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name IN (value1, value2, ...);

例 employeesテーブルから特定の部門に属する従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  department_id 
FROM employees
WHERE department_id IN (1, 2, 3);

WHERE NOT IN

WHERE NOT IN句は、指定したリスト内のいずれの値にも一致しない行を選択するために使用されます。

SELECT 
  column1, 
  column2
FROM table_name 
WHERE column_name NOT IN (value1, value2, ...);

例 employeesテーブルから特定の部門に属さない従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  department_id 
FROM employees
WHERE department_id NOT IN (1, 2, 3);

BETWEEN

BETWEEN句は、指定した範囲内の値に一致する行を選択するために使用されます。数値、日付、文字列の範囲指定が可能です。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name 
BETWEEN value1 AND value2;

例 employeesテーブルから給与が50000から80000の範囲内にある従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  salary 
FROM employees
WHERE salary 
BETWEEN 50000 AND 80000;

日付の範囲指定

日付データの範囲を指定することもできます。

SELECT 
  order_id, 
  order_date, 
  customer_id 
FROM orders
WHERE order_date 
BETWEEN '2023-01-01' AND '2023-12-31';

このクエリは、2023年の間に注文された全ての注文ID、注文日、顧客IDを返します。

LIKE

LIKE句は、部分一致検索に使用されます。ワイルドカード(%や_)を使用して、特定のパターンに一致する行を選択します。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name LIKE 'pattern';

例 employeesテーブルから、名前が「A」で始まる従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name 
FROM employees
WHERE first_name LIKE 'A%';

NOT LIKE

NOT LIKE句は、特定のパターンに一致しない行を選択するために使用されます。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name NOT LIKE 'pattern';

例 employeesテーブルから、名前が「A」で始まらない従業員を取得するクエリは次の通りです。

SELECT
  first_name, 
  last_name 
FROM employees
WHERE first_name NOT LIKE 'A%';

IS NULL / IS NOT NULL

IS NULLおよびIS NOT NULLは、NULL値のチェックに使用されます。

SELECT 
  first_name, 
  last_name 
FROM employees
WHERE manager_id IS NULL;

このクエリは、manager_idがNULLである従業員の名前を返します。

SELECT
  first_name, 
  last_name 
FROM employees
WHERE manager_id IS NOT NULL;

このクエリは、manager_idがNULLでない従業員の名前を返します。

条件指定の使い分け

条件指定には複数の方法がありますが、場面に応じて使い分けることが大切です。

完全一致で値を指定 → = 'value'

複数の値のいずれかに一致 → IN (value1, value2)

範囲を指定 → BETWEEN value1 AND value2

部分一致(前方一致・後方一致・中間一致) → LIKE 'pattern'

NULLのチェック → IS NULL / IS NOT NULL

まとめ

今回は、SQLの条件指定の基本として「WHERE IN」「WHERE NOT IN」「BETWEEN」「LIKE」「NOT LIKE」「IS NULL」について学びました。これらの条件指定を組み合わせることで、必要なデータを正確に抽出できるようになります。

SheetFlow - 学んだSQLを業務で活かそう

SQLマーケティングアカデミーで身につけたSQLスキル、実務でも使ってみませんか?

SheetFlowは、ExcelファイルをアップロードしてSQLで直接操作できるクラウドサービスです。学んだSELECT文やJOIN、集計関数をそのまま業務データに適用し、手作業の集計を自動化できます。

SheetFlowを無料で試す