SQLにおける比較演算子の基本
比較演算子は、SQLの問合せにおいて条件式を記述するときに利用するものです。問合せ条件を指定することは、SQLの記述の中で最も重要な部分で、比較の条件式を記述するときに理解しておかなくてはならないのが比較演算子です。膨大なデータの中から条件に合致するデータを絞り込む場合には、比較演算子を複数記述し、次のセクションで解説する論理演算子のAND演算子、OR演算子を組合せて使うことが重要になります。

比較演算子には次のようなものがあります。
比較演算子
演算子 | 意味 |
---|---|
= | 左辺と右辺が同じ場合に真 |
> | 左辺が右辺より大きい場合に真 |
>= | 左辺が右辺以上の場合に真 |
< | 左辺が右辺より小さい場合に真 |
<= | 左辺が右辺以下の場合に真 |
<>、!= | 左辺と右辺が異なる場合に真 |
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
2 | スナック菓子 | 100 | 80 | 30 |
3 | ポテチ | 150 | 110 | 50 |
4 | ビスケット | 200 | 150 | 50 |
= 演算子
=演算子は、表から条件に合致したデータを取得する際に最もよく使われます。「商品リスト」表で、「単価」列が「100」の商品を選択したいときには、次のように使います。なお、WHERE句についてはこちらで解説します。

SQL文
SELECT * FROM 商品リスト WHERE 単価 = 100;
実行結果
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
2 | スナック菓子 | 100 | 80 | 30 |
>演算子、>=演算子
>演算子は、左辺の値が右辺の値よりも大きい場合に真になる演算子です。そして>=演算子は、左辺の値が右辺の値と同じか、それよりも大きい場合に真になります。
>演算子を用いた条件式では、左辺と右辺が同じ値の場合には真になりません。
SQL文
SELECT * FROM 商品リスト WHERE 単価 > 150;
実行結果
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
4 | ビスケット | 200 | 150 | 50 |
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
2 | スナック菓子 | 100 | 80 | 30 |
3 | ポテチ | 150 | 110 | 50 |
4 | ビスケット | 200 | 150 | 50 |
「商品リスト」表の、単価が150よりも高いものを選択しているので、200のビスケットだけが出力されています。
では、今度は>演算子の代わりに、>=演算子を使って同じSQL文を入力してみます。
SQL文
SELECT * FROM 商品リスト WHERE 単価 >= 150;
実行結果
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
3 | ポテチ | 150 | 110 | 50 |
4 | ビスケット | 200 | 150 | 50 |
今度は、単価が150の商品も結果に出力されています。比較に指定する数値列と同じ値を出力する必要があるかどうかで、>演算子と>=演算子を使い分けます。
<演算子、<=演算子
<演算子は、左辺の値が右辺の値よりも小さい場合に真になる演算子です。そして、<=演算子は、左辺の値が右辺の値以下になる場合に真になる演算子です。
<演算子を用いた条件式では、左辺の値が右辺よりも小さい場合にだけ真となり、同じ場合には真になりません。<=演算子では、左辺と右辺が同じ値の場合にも真になります。真となった行は問合せ結果に出力されます。
SQL文
SELECT * FROM 商品リスト WHERE 単価 < 150;
実行結果
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
2 | スナック菓子 | 100 | 80 | 30 |
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
2 | スナック菓子 | 100 | 80 | 30 |
3 | ポテチ | 150 | 110 | 50 |
4 | ビスケット | 200 | 150 | 50 |
SELECT * FROM 商品リスト WHERE 単価 <= 150;
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
2 | スナック菓子 | 100 | 80 | 30 |
3 | ポテチ | 150 | 110 | 50 |
<演算子では、150より小さな値の行だけが出力され、<=演算子では、150も含めた行が出力されているのがわかると思います。
<>演算子、!=演算子
<>演算子は、左辺と右辺の値が異なる場合に真になる演算子です。!=演算子も同様に、左辺と右辺の値が異なる場合に真になる演算子です。
ここでも「商品リスト」の「単価」列に対して、「150」の値を指定して、<>演算子を使ってみます。
SELECT * FROM 商品リスト WHERE 単価 <> 150;
SELECT * FROM 商品リスト WHERE 単価 != 150;
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
2 | スナック菓子 | 100 | 80 | 30 |
4 | ビスケット | 200 | 150 | 50 |
商品コード | 商品名 | 単価 | 仕入れ値 | 個別包装費 |
---|---|---|---|---|
1 | チョコレート | 150 | 120 | 20 |
2 | スナック菓子 | 100 | 80 | 30 |
3 | ポテチ | 150 | 110 | 50 |
4 | ビスケット | 200 | 150 | 50 |
「単価」列が150以外の行がすべて出力されていることがわかります。なお!=演算子も同じように利用しますが、RDBMS製品により実装されていないことがありますので、各製品のマニュアルを参照してください。
関連リンク
次の章に進む

目次
