條件表示式

您可以使用條件表示式建立可轉換值的表示式。

本小節中描述的條件表示式為建構區塊,用於建立可將值從一種形式轉換為另一種形式的表示式。

請遵守以下規則:

  • CASE 敘述句中,AND 的優先順序高於 OR
  • 字串必須以單引號括住。
表示式 範例 描述 語法

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

評估每個 WHEN 條件,如果符合,則指定相對應 THEN 表示式中的值。

如果不符合任何 WHEN 條件,則指定 ELSE 表示式中指定的預設值。若未指定 ELSE 表示式,系統會自動增加一個 ELSE NULL

注意:請參閱在分析和視覺化中使用 CASE 敘述句的最佳應用

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

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

亦稱為 CASE (Lookup)。會檢查第一個表示式的值,然後檢查 WHEN 表示式。如果第一個表示式符合任何 WHEN 表示式,則指定相對應 THEN 表示式中的值。

如果不符合所有的 WHEN 表示式,則指定 ELSE 表示式中指定的預設值。若未指定 ELSE 表示式,系統會自動增加一個 ELSE NULL

如果第一個表示式符合多個 WHEN 子句中的表示式,只會指定第一個相符項目後面的表示式。

注意:請參閱在分析和視覺化中使用 CASE 敘述句的最佳應用

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

在分析和視覺化中使用 CASE 敘述句的最佳應用

在報表和工作簿中使用 CASE 敘述句時,應考量報表資料欄和聚總順序,因為這些因素會影響表示式和小計的計算方式。

  • 一般而言,使用 CASE 表示式時,請確定表示式使用的所有資料欄都包含在報表中。

  • 如果聚總的順序很重要,請將報表聚總規則從「預設」變更為「總和」。
  • 如果計算聚總之前必須先評估某一項條件 (例如,篩選的資料欄未在報表中顯示),請使用 FILTER 函數。

範例

此範例使用「品牌」、「產品類型」和「收益」的資料。
以下為 GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png 的說明
.png

若要套用條件將相機收益設為 0,請建立下列條件表示式:CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END

如果從報表排除 Product_Type,就沒有可評估表示式的資料,因為表示式包含 Product_Type,結果為:
以下為 GUID-22873F41-3679-45DF-821D-4167594FE069-default.png 的說明
.png

藉由在報表中加入 PRODUCT_TYPE 並將報表聚總設為 SUM,可在計算基礎層級值之後聚總結果:
以下為 GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png 的說明
.png

除了使用 CASE 之外,也可以使用篩選表示式:FILTER(Revenue using Product_Type != ‘Camera’)。此表示式的計算與報表資料欄無關,且會在計算之後套用聚總:
以下為 GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png 的說明
.png