【馬王Z SQL講座】 条件抽出
WHERE句:データの抽出条件を記述する
テーブルの中にあるデータから、何らかの条件に合致するレコードだけ抽出したいときには WHERE句を使います。
WHERE句を使った基本的な構文は下記の通りです。
SELECT [カラム名] FROM [テーブル名] WHERE [条件式] ;
数値で条件を指定
では、出走馬T テーブルから単勝配当が10,000円のデータを抽出するクエリを書いてみましょう。
SELECT * FROM 出走馬T WHERE 単勝配当 = 10000 ;
このクエリのように、テーブルのデータを全件チェックするようなクエリは実行終了まで少し時間がかかります。*1
このクエリを実行すると、下図のような結果が得られます。*2
文字列で条件を指定
次に、出走馬T テーブルから馬名がアーモンドアイのデータを抽出するクエリを書いてみましょう。
SELECT * FROM 出走馬T WHERE 馬名 = "アーモンドアイ" ;
このように条件式に文字列を使う場合には「 " (ダブルクォート)」もしくは「 ' (シングルクォート)」で囲みます。
このクエリを実行すると、下図のような結果が得られます。
カラム同士の比較で抽出
抽出条件には上でやったように数値や文字列での指定もできますが、カラム同士の比較を用いることもできます。
出走馬T テーブルから 入線順位 と 確定着順 が等しくないデータを5件抽出するクエリを書いてみましょう。
出力対象のカラムは
- 年月日
- 馬名
- 入線順位
- 確定着順
とします。
SELECT TOP 5 年月日, 馬名, 入線順位, 確定着順 FROM 出走馬T WHERE 入線順位 <> 確定着順 ;
このクエリを実行すると、下図のような結果が得られます。
比較演算子
条件式を記述するときに使える比較演算子には以下のようなものがあります。
比較演算子 | 使い方 | 説明 | 備考 |
---|---|---|---|
= | A = B | AとBは等しい | |
<> | A <> B | AとBは等しくない | != は使えない |
< | A < B | AはBより小さい | |
<= | A <= B | AはB以下 | |
> | A > B | AはBより大きい | |
>= | A >= B | AはB以上 |
では、出走馬T テーブルから馬体重が630kg以上のデータを重い順に抽出するクエリを書いてみましょう。
出力対象のカラムは
- 年月日
- 馬名
- 馬体重
とします。
SELECT 年月日, 馬名, 馬体重 FROM 出走馬T WHERE 馬体重 >= 630 ORDER BY 馬体重 DESC ;
このクエリを実行すると、下図のような結果が得られます。
やっぱりショーグンは大きいですね!