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
数値ディメンションの値を複数のバケットに分類する
たとえば、注文金額に基づいて注文を「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
CASE
文をネストする
CASE
文をネストして、複雑な分岐ロジックを作成できます。
CASE WHEN Color = "blue"
ELSE
"NOT A HAT"
END