2024-09-19|閱讀時間 ‧ 約 6 分鐘

SQL 解鎖 - WHERE

上一篇我們介紹了SQL基本架構和語法,如何用簡單的SELECT 和 FROM 撈取資料。本篇我們來討論,如何根據指定的條件來篩選資料,僅返回符合條件的結果。


WHERE

WHERE 的基本語法

SELECT 欄位名稱
FROM 資料表
WHERE 條件;

條件 可以是基於欄位的邏輯運算,例如等於、不等於、大於、小於、BETWEEN、LIKE 等等。

以下是一些範例:

employees_vocus

範例 1:篩選部門為 Sales 的員工

SELECT first_name, last_name, department
FROM employees_vocus
WHERE department = 'Sales';

範例 1 結果


範例 2:篩選薪水大於 5000 的員工

SELECT first_name, salary
FROM employees_vocus
WHERE salary > 5000;

範例 2 結果


範例 3:使用 BETWEEN 篩選薪水在 4800 到 5500 之間的員工

SELECT first_name, salary
FROM employees_vocus
WHERE salary BETWEEN 4800 AND 5500;

範例 3 結果


範例 4:使用 LIKE 篩選姓氏以 "S" 開頭的員工

SELECT first_name, last_name
FROM employees_vocus
WHERE last_name LIKE 'S%';

範例 4 結果


範例 5:使用 AND 和 OR 進行多重條件篩選

SELECT first_name, department, salary
FROM employees_vocus
WHERE department = 'IT' AND salary > 5000;

範例 5 結果


範例 6:使用 OR 篩選部門為 HR 或薪水大於 5500 的員工

SELECT first_name, department, salary
FROM employees_vocus
WHERE department = 'HR' OR salary > 5500;

範例 6 結果

範例 7:篩選 first_name 長度大於 4 的員工

SELECT first_name, last_name
FROM employees_vocus
WHERE LENGTH(first_name) > 4;

範例 7 結果


範例 8:篩選 last_name 開頭兩個字母是 "Sm" 的員工

SELECT first_name, last_name
FROM employees
WHERE LEFT(last_name, 2) = 'Sm';


-- SQLite
SELECT first_name, last_name
FROM employees_vocus
WHERE SUBSTR(last_name, 1, 2) = 'Sm';

範例 8 結果


範例 9:篩選 last_name 最後三個字母是 "son" 的員工

SELECT first_name, last_name
FROM employees
WHERE RIGHT(last_name, 3) = 'son';


SELECT first_name, last_name
FROM employees_vocus
WHERE SUBSTR(last_name, LENGTH(last_name) - 2, 3) = 'son';

範例 9 結果


範例 10:篩選部門是 Sales 或 IT 的員工

SELECT first_name, department
FROM employees_vocus
WHERE department IN ('Sales', 'IT');

範例 10 結果


WHERE 子句是 SQL 中的核心部分,它允許使用者根據條件對資料進行篩選。無論是單一條件還是多重條件,WHERE 都能靈活應用於數據查詢中。使用 LIKEBETWEENANDOR 等操作符,可以實現更複雜的篩選需求。


謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!










分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.