列印      開啟 PDF 版的線上說明


上一個主題

下一個主題

Case 陳述式

Case 陳述式是建立條件運算式的建構元素,這些運算式可以為不同資料欄值產生不同的值。

Case (Switch)

這種格式的 Case 陳述式也稱為 CASE (Lookup) 格式。expression1 的值先進行檢查,再檢查 WHEN 運算式。如果 expression1 與任何 WHEN 運算式相符,就指派對應 THEN 運算式中的值。

如果 expression1 與多個 WHEN 子句中運算式相符,則僅指派該運算式之後的第一個相符運算式。

如果沒有任何 WHEN 運算式與其相符,則指派 ELSE 運算式中指定的值;如果未指定任何 ELSE 運算式,則指派 NULL 值。

請參閱 Case (If) 陳述式。

語法:

CASE expression1

WHEN 運算式 THEN 運算式

{WHEN 運算式... THEN 運算式...}

ELSE 運算式

END

其中:

CASE

開始 CASE 陳述式。後面必須跟隨著運算式及一個或多個 WHEN 和 THEN 陳述式、選擇性的 ELSE 陳述式,以及 END 關鍵字。

WHEN

指定要滿足的條件。

THEN

如果滿足對應的 WHEN 運算式條件,指定要指派的值。

ELSE

如果沒有滿足任何 WHEN 條件,指定要指派的值;如果省略,則取 ELSE NULL。

END

結束 CASE 陳述式。

範例

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

在以上範例中,WHEN 陳述式必須反映嚴謹相等;如果 WHEN 條件為

WHEN < 0 THEN 'Under Par'

則非法,因為不允許比較運算子。

Case (If)

這種格式的 Case 陳述式會評估每個 WHEN 條件,如果條件滿足,就指派對應 THEN 運算式中的值。

如果沒有任何 WHEN 條件與其相符,則指派 ELSE 運算式中指定的預設值;如果未指定任何 ELSE 運算式,則指派 NULL 值。

請參閱 Case (Switch) 陳述式。

語法:

CASE

WHEN request_condition1 THEN expression1

{WHEN request_condition2 THEN expression2}

{WHEN request_condition... THEN expression...}

ELSE 運算式

END

其中:

CASE

開始 CASE 陳述式。後面必須跟隨著一個或多個 WHEN 和 THEN 陳述式、選擇性的 ELSE 陳述式,以及 END 關鍵字。

WHEN

指定要滿足的條件。

THEN

滿足對應的 WHEN 運算式條件時要指派的值。

ELSE

指定沒有滿足任何 WHEN 條件時的值;如果省略,則取 ELSE NULL。

END

結束 CASE 陳述式。

範例

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogie'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

與 CASE 陳述式的 Switch 格式不同,If 格式中的 WHEN 陳述式允許比較運算子,如果 WHEN 條件為

WHEN < 0 THEN 'Under Par'

則合法。


2018年8月 Copyright © 2005, 2018, Oracle 及/或其關係機構。版權所有. Legal Notices.