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,要使用IS NULL。
WHERE 條件查詢
Previous: Distinct 去除重複
Next: FETCH