sql 中的條件判斷可用于過濾數據,僅返回滿足指定條件的行。where 子句用于過濾行,having 子句用于過濾聚合函數生成的組結果集中的行。條件判斷使用等于、不等于、大于、小于等運算符以及 and、or、not 等邏輯運算符。可以嵌套條件以創建更復雜的過濾條件,嵌套條件的優先級遵循括號內條件、not 運算符、and 運算符、or 運算符。
SQL 中的條件判斷
條件判斷是 SQL 查詢中用于過濾數據并僅返回滿足特定條件的行。SQL 中有兩種主要的條件判斷:
WHERE 子句:用于過濾行,只返回滿足指定條件的行。
HAVING 子句:用于過濾由聚合函數(如 SUM、COUNT 或 AVG)生成的組結果集中的行。
WHERE 子句
WHERE 子句位于 SELECT 語句的末尾,用于指定過濾條件。條件由一個邏輯表達式組成,該表達式對行的列求值,并返回 TRUE 或 FALSE。
語法:
<code class="sql">SELECT column_name(s) FROM table_name WHERE condition;</code>
登錄后復制
示例:
<code class="sql">SELECT * FROM customers WHERE age > 18;</code>
登錄后復制
HAVING 子句
HAVING 子句位于 GROUP BY 子句之后,用于過濾由聚合函數生成的組結果集中的行。條件對聚合值求值,并返回 TRUE 或 FALSE。
語法:
<code class="sql">SELECT column_name(s) FROM table_name GROUP BY group_column(s) HAVING condition;</code>
登錄后復制
示例:
<code class="sql">SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 50000;</code>
登錄后復制
條件運算符
SQL 使用以下運算符進行條件判斷:
等于: =
不等于: 或 !=
大于: >
小于:
大于或等于: >=
小于或等于:
LIKE:用于匹配模式(例如,”LIKE ‘%john%'” 匹配包含 “john” 字符串的行)
邏輯運算符
SQL 使用以下邏輯運算符組合條件:
AND:邏輯與運算符,只有兩個條件都為 TRUE 時才返回 TRUE。
OR:邏輯或運算符,只要有一個條件為 TRUE 時就返回 TRUE。
NOT:邏輯非運算符,將條件結果取反。
嵌套條件
可以使用括號嵌套條件以創建更復雜的過濾條件。嵌套條件的優先級遵循如下順序:
-
括號內的條件
NOT 運算符
AND 運算符
OR 運算符