テーブルやビューから取得するデータの条件を指定する WHERE [SQLServer]

SQL Server ロゴ

前回の記事では、データベースのテーブルからデータを取得する際に使用するSELECTステートメントを紹介しました。

テーブルやビューなどからデータを取得(選択)する SELECT FROM [SQLServer]
SQLでデータベースのテーブルやビューなどからデータ(行)を取得する際には、SELECTステートメントを使用します。 本記事で...

SELECTステートメントでは、SELECT句で取得する列を選択し、FROM句でデータを取得するテーブル(場所)を指定しました。

SELECT句とFROM句を使ったSQLでは、テーブルからすべての行(レコード)が取得されます。
しかし検索などの処理では、テーブルからデータを取得する際に特定のレコード(行)に絞りたい場合があります。

そこで今回は、取得するデータを絞り込む際に使用するWHERE句について紹介します。

使用するサンプルテーブル

本記事では、WHERE句の説明に「従業員」という名前のテーブルを使用します。
「従業員」テーブルの定義は以下のようになります。

テーブル定義

列名 データ型 NULLを許容
ID int No
氏名 nvarchar(50) Yes
性別 nvarchar(10) Yes
部署 nvarchar(20) Yes

テーブルを作成するCREATE文(SQL)

テーブルにデータを挿入するINSERT文(SQL)

取得する行(レコード)を指定するWHERE

SELECTステートメントでテーブルからデータを取得するSQLは以下のようになります。

ここに取得する行を絞り込む条件を指定するためにWHEREを記述します。

WHERE句は、FROM句でテーブルを指定した後に記述します。

WHERE句には、取得する行を特定するための条件式を指定します。

例えば、「性別」が「男性」の行だけに絞り込みたい場合は、以下のSQLになります。

上記のSQLを実行すると、以下のデータが取得されます。

SSMS SQLクエリエディターでWHERE句のサンプルSQLを実行した結果

性別が男性の「佐藤 一郎」「鈴木 次郎」「山田 三郎」の3行のレコードが取得できているのが確認できます。

複数の条件を指定して取得する行を絞り込む

WHERE句を使用することで、SELECTステートメントで取得する行を限定することができるようになりました。

ここまでの例では、WHERE句で行を特定するための条件は1つのみ指定していましたが、複数の条件を指定することもできます。

WHERE句で複数の条件式を記述する場合は、WHERE句に記述した条件式の後にANDを記述します。

ANDの後は、WHERE句と同様に条件式を記述します。

上記のSQLを実行すると、以下のデータが取得されます。

SSMS SQLクエリエディターでWHERE句のサンプルSQLを実行した結果

性別が男性である条件に加えて、部署が営業部である行の「佐藤 一郎」と「山田 三郎」が抽出対象になっていることが確認できます。