SQL WHERE句に書けるもの、書けないもの
2019-09-01
WHERE句はテーブルから情報を取得する際に、条件をつけることができます。
販売単価を取得したい、条件として価格が100円以上のものとしたい場合、
SELECT hanbai_tanka
FROM Shohin
WHERE hanbai_tanka > 100
いろんな条件で取得したい時、ついついWHERE句に全て詰め込みたいところですが、
WHERE句になんでも書くことができる訳ではありません。
WHERE句に書けるのは「条件式のみ」です。
真・偽の条件式で、もともとテーブルにある行のみです。
例えば、SUMは行の数字を足し合わせる、COUNTは行数を数えるなどテーブルに何か加工して別の数字として引数が帰ってきますので使えません。単価が300円と500円の2行のテーブルがあったとして、合計の800円を取得したいということはできません。取得できるのは800円と300円のみです。
下記、WHERE句に書けるもの、書けないものをまとめます。
書けるもの:
比較演算子
・IS NULL
・IS NOT NULL
・LIKE
・BETWEEM
・IN
・ANY
・ALL
・=, <, >, <=, >=, <>
論理演算子
・AND
・OR
・NOT
書けないもの:
四則演算
・+, ー, *, /
下記の関数など
・SUM
・COUNT
・AVG
etc...
関数でも、例えば下記のLENとかは使えます
SELECT shohin_mei
FROM Shohin
WHERE LEN(shohin_mei) > 3
上でも書きましたが、要は条件式になるかどうかです。