Voorwaardelijke uitdrukkingen

U kunt voorwaardelijke uitdrukkingen gebruiken om uitdrukkingen te maken waarmee waarden worden geconverteerd.

De voorwaardelijke uitdrukkingen beschreven in deze sectie zijn bouwstenen voor het maken van uitdrukkingen waarmee een waarde wordt geconverteerd van de ene vorm naar een andere.

Volg deze regels:

  • In CASE-statements heeft AND prioriteit boven OR.
  • Strings moeten tussen enkele aanhalingstekens staan.
Uitdrukking Voorbeeld Beschrijving Syntaxis

CASE (If)

CASE

WHEN score-par < 0 THEN 'Onder par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Dubbele bogey'

ELSE 'Drievoudige bogey of slechter'

END

Hiermee wordt elke WHEN-voorwaarde geëvalueerd. Als aan de voorwaarde wordt voldaan, wordt de waarde toegewezen in de overeenkomstige THEN-uitdrukking.

Als er aan geen van de WHEN-voorwaarden wordt voldaan, wordt de standaardwaarde toegewezen die is opgegeven in de ELSE-uitdrukking. Als er geen ELSE-uitdrukking is opgegeven, wordt door het systeem automatisch een ELSE NULL toegevoegd.

Opmerking: zie Aanbevolen werkwijzen voor het gebruik van CASE-statements in analyses en visualisaties.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie op Par 6'

WHEN -4 THEN 'Dit moet Tiger Woods zijn'

WHEN -3 THEN 'Drie onder par'

WHEN -2 THEN 'Twee onder par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Dubbele bogey'

ELSE 'Drievoudige bogey of slechter'

END

Wordt ook wel CASE (Lookup) genoemd. De waarde van de eerste uitdrukking wordt onderzocht, en daarna de WHEN-uitdrukkingen. Als de eerste uitdrukking overeenkomt met een WHEN-uitdrukking, wordt de waarde toegewezen in de overeenkomstige THEN-uitdrukking.

Als geen van de WHEN-uitdrukkingen overeenkomen, wordt de standaardwaarde toegewezen die is opgegeven in de ELSE-uitdrukking. Als er geen ELSE-uitdrukking is opgegeven, wordt door het systeem automatisch een ELSE NULL toegevoegd.

Als de eerste uitdrukking overeenkomt met een uitdrukking in meerdere WHEN-clausules, wordt alleen de uitdrukking toegewezen die volgt op de eerste overeenkomst.

Opmerking: zie Aanbevolen werkwijzen voor het gebruik van CASE-statements in analyses en visualisaties.

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]

Aanbevolen werkwijzen voor het gebruik van CASE-statements in analyses en visualisaties

Wanneer u CASE-statements gebruikt in rapporten en werkmappen, moet u rekening houden met de rapportkolommen en de aggregatievolgorde, aangezien deze van invloed zijn op de manier waarop uitdrukkingen en subtotalen worden berekend.

  • Wanneer u CASE-uitdrukkingen gebruikt, moet u controleren of kolommen die in de uitdrukking worden gebruikt in het rapport zijn opgenomen.

  • Als de aggregatievolgorde belangrijk is, wijzig dan de rapportaggregatieregel van 'Standaard' in 'Som'.
  • Als een voorwaarde moet worden geëvalueerd voordat de aggregatie wordt berekend (bijvoorbeeld als de gefilterde kolom niet wordt weergegeven in het rapport), gebruikt u de functie FILTER.

Voorbeeld

Dit voorbeeld gebruikt gegevens voor 'Merk', 'Producttype' en 'Opbrengsten'.
Beschrijving van GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png volgt hierna
.png

Als u een voorwaarde wilt toepassen om de cameraopbrengsten op 0 in te stellen, maakt u de volgende voorwaardelijke uitdrukking: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Opbrengsten END.

Wanneer Product_Type is uitgesloten van het rapport, zijn er geen gegevens beschikbaar om de uitdrukking te evalueren, omdat deze Product_Type bevat en dit de resultaten zijn:
Beschrijving van GUID-22873F41-3679-45DF-821D-4167594FE069-default.png volgt hierna
.png

Door PRODUCT_TYPE toe te voegen aan het rapport en de rapportaggregatie in te stellen op SUM, worden de resultaten geaggregeerd nadat de basisniveauwaarden zijn berekend:
Beschrijving van GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png volgt hierna
.png

Een alternatief voor het gebruik van CASE is een filteruitdrukking: FILTER(Opbrengsten using Product_Type != ‘Camera’). De uitdrukking wordt afzonderlijk van rapportkolommen berekend en aggregaties worden na berekening toegepast:
Beschrijving van GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png volgt hierna
.png