sql 中可以使用帶有 then 和 else 關(guān)鍵字的多個(gè)條件來進(jìn)行多次判斷,如下:if condition1 then — 語句塊 1elsif condition2 then — 語句塊 2…else — 語句塊 nend if;
SQL 中使用 IF 語句進(jìn)行多次判斷
IF 語句是 SQL 中用于根據(jù)條件執(zhí)行不同操作的控制流語句。在某些情況下,需要在單個(gè) IF 語句中進(jìn)行多次判斷才能確定要執(zhí)行的操作。
語法
使用 THEN 和 ELSE 關(guān)鍵字將多個(gè)條件鏈接到 IF 語句:
<code class="sql">IF condition1 THEN -- 語句塊 1 ELSIF condition2 THEN -- 語句塊 2 ... ELSE -- 語句塊 n END IF;</code>
登錄后復(fù)制
例子
假設(shè)我們有一個(gè)表 students
,其中包含學(xué)生的成績。我們需要查詢學(xué)生的成績,并根據(jù)成績的不同范圍分配等級:
<code class="sql">SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE 'F' END AS grade FROM students;</code>
登錄后復(fù)制
在這個(gè)例子中,CASE 語句被用來根據(jù)學(xué)生的成績進(jìn)行多次判斷。每個(gè) WHEN 子句指定一個(gè)條件和一個(gè)對應(yīng)的等級。ELSE 子句提供一個(gè)默認(rèn)等級,在所有其他條件都不滿足時(shí)使用。
注意:
ELSEIF 關(guān)鍵字是可選的;如果沒有 ELSEIF 條件,則可以省略。
每個(gè) WHEN 子句必須以 THEN 關(guān)鍵字結(jié)尾,而 ELSE 子句必須以 END IF 關(guān)鍵字結(jié)尾。
CASE 語句也可以用于進(jìn)行多次判斷,并且在某些情況下更可取。