SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのNOT条件とは?構文と実行例をわかりやすく解説

SQL Server(Transact-SQL)におけるNOT条件は「NOT演算子」とも呼ばれ、SELECT文、INSERT文、UPDATE文、DELETE文の中で条件を否定するために使用されます。「指定した条件に該当しないレコード」を抽出したい場合に非常に便利な機能です。

NOT条件の構文

NOT 条件

パラメータの説明

condition(条件)
否定したい条件をここに指定します。

注意点

NOT条件を使用した場合、結果セットには指定した「条件」に一致しないレコードだけが返されます。つまり、条件の真偽が反転して評価される点に注意してください。

実行例

IN条件との組み合わせ

以下の例では、nhanvien(社員)テーブルから、名前が「John」「Dale」「Susan」以外であるすべての行を取得します。除外したい値が少数の場合は、このようにNOTを使う方が検索が速くなることがあります。

SELECT *
FROM nhanvien
WHERE ten NOT IN ('John', 'Dale', 'Susan');

IS NULL条件との組み合わせ

NOTとIS NULLを組み合わせると、NULL以外の値を持つレコードを抽出できます。

SELECT *
FROM nhanvien
WHERE ho IS NOT NULL;

このクエリは、nhanvienテーブルの中から「ho(姓)」列にNULLが含まれていないすべてのレコードを返します。

LIKE条件との組み合わせ

LIKEとNOTを組み合わせることで、指定したパターンに一致しない値を検索できます。

SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ho NOT LIKE 'A%';

LIKE条件の前にNOT演算子を置くことで、「姓が文字'A'で始まらない」従業員のみが結果として返されます。

BETWEEN条件との組み合わせ

SELECT *
FROM nhanvien
WHERE nhanvien_id NOT BETWEEN 200 AND 250;

この例では、nhanvien_idが200~250の範囲に含まれない行が返されます(両端の200と250自身は除外されます)。このクエリは、以下のSELECT文と同等の結果になります。

SELECT *
FROM nhanvien
WHERE nhanvien_id < 200
OR nhanvien_id > 250;

EXISTS条件との組み合わせ

SELECT *
FROM nhanvien
WHERE NOT EXISTS (
    SELECT *
    FROM danhba
    WHERE nhanvien.ho = danhba.ho
      AND nhanvien.ten = danhba.ten
);

上記のクエリは、danhba(連絡先)テーブル内に姓と名が一致するレコードが存在しない場合に、nhanvienテーブルのレコードを返します。サブクエリの結果が「存在しないこと」を確認したい場合に有効な書き方です。

まとめ

NOT条件は単体でも使えますが、IN・IS NULL・LIKE・BETWEEN・EXISTSなどの他の条件と組み合わせることで、より柔軟なデータ抽出が可能になります。「〜以外のデータを取得したい」という場面では、ぜひ活用してみてください。

  1. 【SQL Server】AND条件(AND演算子)の使い方を実例付きで解説

    SQL ServerにおけるAND条件(AND演算子)は、SELECT文、INSERT文、UPDATE文、DELETE文の中で、2つ以上の条件を同時に評価するために使用されます。すべての条件を満たすレコードだけを抽出したい場合に不可欠な機能です。 AND条件の基本構文 WHERE 条件1 AND 条件2 ... AND 条件n; パラメータの説明 条件1、条件2、…条件n: レコードが選択されるために満たす必要がある条件です。 押さえておきたいポイント SQL ServerのAND条件では、2つ以上の条件を組み合わせてチェックできます。 AND条件ではすべての条件が真(TRUE)の場合

  2. MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説

    SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ