【備忘録】WHEREの条件式まとめ
投稿日: 更新日:
WHEREの構文
WHERE 条件式
このようにシンプルな構文です。
条件式の部分には結果がTRUE
もしくはFALSE
となる式を書きます。
演算子一覧
表にまとめました
演算子 | 意味 |
---|---|
= | 左右が等しい |
< | 左辺が右辺未満 |
> | 左辺が右辺より大きい |
<= | 左辺が右辺以下 |
>= | 左辺が右辺以上 |
<> | 左右の値が等しくない |
LIKE | パターンに一致するかどうか |
BETWEEN a AND b | 値がa以上かつb未満かどうか |
IN (v1, v2,..) | 値がv1, v2,..のいずれかと一致するか |
a AND b | aもbもTRUEかどうか |
a OR b | aもしくはbがTRUEかどうか |
NOT | TRUE,FALSEの反転 |
IS NULL | NULLかどうか |
IS NOT NULL | NULLでないかどうか |
ALL (v1, v2,..) | 値の一覧と比較し、全て真かどうか |
ANY (v1, v2,..) | 値の一覧と比較し、1つでも真かどうか |
LIKEによるパターンマッチング
パターン文字 | 意味 |
---|---|
% | 任意の0文字以上 |
_ (アンダースコア) | 任意の1文字 |
例えば、「代」で終わる文字列を探すときは
LIKE '%代'
のように使います
エスケープするときは
LIKE '%10$%' ESCAPE '$'--10%で終わる文字列かどうか
のようにESCAPE
でエスケープ文字を指定します。エスケープ文字により直後の文字がただの文字として扱われます。
NULL判定
NULLは基本演算子ではなくIS NULL
、IS NOT NULL
を用います
val = NULL --これではNULL判定できない
val IS NULL --これを用いる
ALL ANY 演算子
ALL ANYの前に基本演算子を置きます
例
式 < ALL (v1, v2, v3,...)
この時、式がv1, v2, v3...のどのvよりも小さいとき真となります。
ANYの場合
式 < ANY (v1, v2, v3,...)
この時、式がv1, v2, v3...のどれか1つよりも小さければ真となります。