CASE

条件のリストを評価し、最初に一致する結果式を返します。

CASE では 1 つ以上の条件を定義し、条件が満たされると結果が返されます。どの条件にも該当しない場合のデフォルトの結果も定義できます。

この記事の内容:

CASE は一般的に、データの新しいカテゴリやグループを作成する場合に使用されます。たとえば、特定の国の値を「営業地域」ディメンションにまとめるには、次のような CASE 式を作成します。

CASE 
    WHEN Country IN ("USA","Canada","Mexico") THEN "North America" 
    WHEN Country IN ("England","France") THEN "Europe" 
    ELSE "Other" 
END

検索 CASE 式の仕組み

CASE 式は CASE キーワードで始まり、END キーワードで終わります。その間に、以下のようなセクションまたは「節」を指定します。

  • WHEN: 評価の対象となる条件。1 つの CASE 式に複数の WHEN 節を含めることができます。
  • THEN: WHEN 節の条件が true の場合に返される結果。CASE 式内の WHEN 節ごとに 1 つの THEN 節を指定する必要があります。
  • ELSE: 省略可。WHEN 節のどの条件も true にならなかった場合、CASE は ELSE 節の値を返します。ELSE 節が指定されていない場合は、NULL を返します。

CASE は、後に続く各 WHEN 節を評価し、条件が true になる最初の結果を返します。残りの WHEN 節と ELSE 結果は評価されません。すべての WHEN 条件が false または NULL である場合、CASE は ELSE 結果を返します。ELSE 節が指定されていない場合は NULL を返します。

検索 CASE 式の構文


CASE
    WHEN condition THEN result
    [WHEN condition THEN result]
    [...]
    [ELSE else_result]
END

パラメータ

WHEN 条件

WHEN 条件は与えられたデータを評価し、指定された条件が満たされていれば true、満たされていなければ false を返します。WHEN 条件には、有効なブール式を使用できます。

THEN 結果

各 WHEN 条件には、対応する THEN 節が必要です。THEN 節では、条件が満たされた場合に返す結果を指定します。WHEN 条件が複数ある場合、CASE 式では最初に true になった条件の結果が返されます。

注意事項

THEN 節で返される結果は、すべて同じ型でなければなりません。

たとえば、最初の THEN 節で返される値がテキストであれば、他の THEN 節および ELSE 節でもテキストを返す必要があります。

ELSE else_result

省略可能な ELSE 節では、デフォルトの結果を指定します。WHEN 節の条件がどれも満たされなかった場合、この値が返されます。CASE 式に ELSE 節が含まれておらず、WHEN 節のどの条件も満たされなかった場合は、NULL が返されます。1 つの CASE 式に指定できる ELSE 節は 1 つだけです。

その他の例

大小関係を確認する場合は、以下のように指定します。

CASE WHEN Medium != "cpc" THEN "free" ELSE "paid" END
単純な「if / then / else」条件の場合は、IF 関数の使用を検討してください。

数値ディメンションの値を複数のバケットに分類します。たとえば、注文金額に基づいて注文を「Small」、「Medium」、「Large」に分類することができます。

CASE
    WHEN Amount < 20 THEN "Small"
    WHEN Amount >= 20 and Amount < 100 THEN "Medium"
    WHEN Amount >= 100 THEN "Large"
END

 

AND 論理条件を評価する場合は、以下のように指定します。

CASE 
    WHEN Country ISO Code = "US" AND Medium = "cpc" 
    THEN "US - Paid" 
    ELSE "other" 
END

 

AND / OR 論理条件を評価し、正規表現一致を使用する場合は、以下のように指定します。

CASE 
    WHEN REGEXP_MATCH(Video Title, ".*Google Analytics*")
    AND is_livestream = TRUE 
    OR Video Length > 600 
    THEN "GA Livestream or long video" 
END

 

パラメータを評価します。たとえば、「Sales Target」パラメータを設定し、目標を達成した注文を確認できるようにすることができます。

CASE WHEN Qty Sold >= Sales target parameter THEN 1 ELSE 0 END

 

パラメータ値に応じて、異なるフィールドまたは値を返します。

最初の例では、選択されたパラメータ値に基づいてディメンションが返されます。この手法を使用すると、グラフで使用されている内訳ディメンションをユーザーが切り替えられるようにすることができます。

2 番目の例は、パラメータ値に基づいて異なる指標を返す方法を示しています。

CASE 
    WHEN Breakdown = "Product Category" THEN Product Category 
    WHEN Breakdown = "Store" THEN Store 
END

注: 同じことを単純 CASE 式の構文で記述すると、次のようになります。

CASE Breakdown 
    WHEN "Product Category" THEN Product Category
    WHEN "Store" THEN Store
END

CASE WHEN Show Adjusted Cost = TRUE THEN Cost + Adjustments ELSE Cost END

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。
true
検索
検索をクリア
検索終了
Google アプリ
メインメニュー
ヘルプセンターを検索
true
102097
false