条件式

条件式を使用して、値を変換する式を作成します。

ここで説明する条件式は、ある形式から別の形式に値を変換する式を作成するための構築ブロックです。

次のルールに従います。

  • 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関数を使用します。

この例では、ブランド、製品タイプおよび収益のデータを使用します。
case-best-practice-data.pngの説明が続きます
図case-best-practice-data.pngの説明

Cameraの収益を0に設定する条件を適用するには、CASE WHEN Product_Type = 'Camera' THEN 0 ELSE Revenue ENDという条件式を作成します。

レポートからProduct_Typeが除外されていると、式にProduct_Typeが含まれているため、式の評価にデータが使用できなくなります。その結果は、次のようになります。
case-best-practice-results-1.pngの説明が続きます
図case-best-practice-results-1.pngの説明

レポートにPRODUCT_TYPEを追加し、レポートの集計方法をSUMに設定することで、ベースレベルの値が計算された後に結果が集計されます。
case-best-practice-results-2.pngの説明が続きます
図case-best-practice-results-2.pngの説明

CASEを使用するかわりに、FILTER(Revenue using Product_Type != ‘Camera’)というフィルタ式を使用することもできます。式はレポート列に関係なく計算され、集計は計算後に適用されます。
case-best-practice-results-3.pngの説明が続きます
図case-best-practice-results-3.pngの説明