Espressioni condizionali

Utilizzare le espressioni condizionali per creare espressioni che convertono valori.

Le espressioni condizionali descritte in questa sezione sono basi di sviluppo per la creazione di espressioni che convertono un valore in un formato diverso.

Attenersi alle regole riportate di seguito.

  • Nelle istruzioni CASE, AND ha la precedenza su OR.
  • Le stringhe devono essere racchiuse tra apici.
Espressione Esempio Descrizione Sintassi

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

Valuta ogni condizione WHEN e se viene soddisfatta assegna il valore nell'espressione THEN corrispondente.

Se non viene soddisfatta alcuna condizione WHEN, assegna il valore predefinito specificato nell'espressione ELSE. Se non si specifica alcuna espressione ELSE, il sistema aggiunge automaticamente ELSE NULL.

Nota: consultare Procedure ottimali per l'utilizzo delle istruzioni CASE nelle analisi e nelle visualizzazioni.

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

Definita anche CASE (Lookup). Viene esaminato il valore della prima espressione, successivamente le espressioni WHEN. Se la prima espressione corrisponde a una delle espressioni WHEN, assegna il valore nell'espressione THEN corrispondente.

Se nessuna delle espressioni WHEN corrisponde, assegna il valore predefinito specificato nell'espressione ELSE. Se non si specifica alcuna espressione ELSE, il sistema aggiunge automaticamente ELSE NULL.

Se la prima espressione corrisponde a un'espressione in più clausole WHEN, viene assegnata solo l'espressione successiva alla prima corrispondenza.

Nota: consultare Procedure ottimali per l'utilizzo delle istruzioni CASE nelle analisi e nelle visualizzazioni.

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]

Procedure ottimali per l'utilizzo delle istruzioni CASE nelle analisi e nelle visualizzazioni

Quando si utilizzano le istruzioni CASE nei report e nelle cartelle di lavoro, prendere in considerazione le colonne del report e l'ordine di aggregazione, poiché questi due fattori influenzano le modalità di calcolo delle espressioni e dei totali parziali.

  • In generale, quando si utilizzano le espressioni CASE, assicurarsi che tutte le colonne usate nell'espressione siano incluse nel report.

  • Se l'ordine di aggregazione è importante, modificare la regola di aggregazione del report da Predefinita a Somma.
  • Se una condizione deve essere valutata prima del calcolo dell'aggregazione (ad esempio, se la colonna filtrata non viene visualizzata nel report), utilizzare la funzione FILTER.

Esempio

Nell'esempio seguente vengono utilizzati i dati relativi a Brand, Product Type e Revenue.
Segue la descrizione di GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png

Per applicare una condizione che consenta di impostare le entrate relative alla fotocamera su 0, creare la seguente espressione condizionale: CASE WHEN Product_Type = 'Camera' THEN 0 ELSE Revenue END.

Se l'argomento Product_Type viene escluso dal report, i dati non sono disponibili per la valutazione dell'espressione perché quest'ultima contiene Product_Type e si otterranno i seguenti risultati:
Segue la descrizione di GUID-22873F41-3679-45DF-821D-4167594FE069-default.png
.png

Aggiungendo PRODUCT_TYPE al report e impostando l'aggregazione del report su SUM, il risultato viene aggregato dopo il calcolo dei valori di livello base:
Segue la descrizione di GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png

In alternativa all'istruzione CASE è possibile utilizzare un'espressione di filtro: FILTER(Revenue using Product_Type != 'Camera'). L'espressione viene calcolata indipendentemente dalla colonne del report e le aggregazioni vengono applicate dopo il calcolo:
Segue la descrizione di GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png
.png