【備忘録】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つよりも小さければ真となります。