WHERE 概要
WHEREはOracleの条件検索句で、データをフィルタリングし、検索条件に合致した行だけを返します。
構文の順序のポイント:WHEREはFROMの後、ORDER BYの前に記述します。
完全な構文
SELECT
column1,
column2,
...
FROM
tablename
WHERE
search_condition
ORDER BY
column1,
column2;
比較演算子
| 演算子 | 説明 |
|---|---|
= | 等しい |
!= , <> | 等しくない |
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
IN | リスト内のいずれかの値に一致 |
NOT IN | リスト内のどの値にも一致しない |
[NOT] BETWEEN n AND m | 数値範囲内か判定 |
[NOT] EXISTS | サブクエリが行を返すか判定 |
IS [NOT] NULL | NULL値を判定 |
コード例
等値検索
SELECT
id,
name,
sex
FROM
student
WHERE
name = 'tom';Code language: JavaScript (javascript)
Oracle実行結果:
SQL> select * from student where name = 'tom';
ID NAME SEX
---------- ---------- ----
1 tom 男Code language: JavaScript (javascript)
数値比較、idが20より大きい
SELECT
*
FROM
student
WHERE
id > 20;
論理和 OR
SQL> select * from student where id>1 or name = 'jim';
ID NAME SEX
---------- ---------- ----
2 jim 男
3 lisa 女Code language: JavaScript (javascript)
IN による集合マッチ
SELECT
*
FROM
student
WHERE
id IN(1,4)
ORDER BY
name;
実行結果:
SQL> select * from student where id in(1,3);
ID NAME SEX
---------- ---------- ----
1 tom 男
3 lisa 女Code language: JavaScript (javascript)
LIKE あいまい検索
SELECT
*
FROM
student
WHERE
name LIKE 'l%'
ORDER BY
name;Code language: JavaScript (javascript)
%はワイルドカードです。'l%'は「l」で始まる文字列を一致させます。
重要な注意点:
- 文字列の条件値は必ずシングルクォーテーションで囲む、例:
name = 'jim'。 WHEREはORDER BYの前に記述、順番を入れ替えてはいけません。- NULL判定には
= NULLは使わず、IS NULLを使用してください。
WHERE 条件検索
Previous: Distinct 重複除去
Next: FETCH