Uvjetni izrazi

Uvjetne izraze možete upotrijebiti kako biste napravili izraze koji pretvaraju vrijednosti.

Uvjetni izrazi opisani u ovom odlomku sastavni su blokovi za stvaranje izraza koji vrijednost iz jednog oblika pretvaraju u drugi.

Slijedite ova pravila:

  • U CASE naredbama AND ima prednost pred OR.
  • Nizovi moraju biti navedeni unutar jednostrukih navodnika.
Izraz Primjer Opis Sintaksa

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

Procjenjuje svaki WHEN uvjet i ako je uvjet ispunjen, dodjeljuje vrijednost u odgovarajućem THEN izrazu.

Ako nijedan WHEN uvjet nije ispunjen, dodjeljuje zadanu vrijednost definiranu u ELSE izrazu. Ako ELSE izraz nije definiran, sustav će automatski dodati ELSE NULL.

Napomena: Pogledajte Najbolje prakse za upotrebu CASE naredbi u analizama i vizualizacijama.

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

Naziva se i CASE (Lookup). Provjerava se vrijednost prvog izraza, a zatim WHEN izraza. Ako prvi izraz odgovara bilo kojem od WHEN izraza, dodijelit će se vrijednost u odgovarajućem THEN izrazu.

Ako nijedan od WHEN izraza nije ispunjen, dodijelit će se zadana vrijednost definirana u ELSE izrazu. Ako ELSE izraz nije definiran, sustav će automatski dodati ELSE NULL.

Ako prvi izraz odgovara izrazima u više WHEN uvjeta, dodijelit će se samo onaj izraz koji se nalazi iza prvog podudaranja.

Napomena: Pogledajte Najbolje prakse za upotrebu CASE naredbi u analizama i vizualizacijama.

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]

Najbolje prakse za upotrebu CASE naredbi u analizama i vizualizacijama

Ako u izvješćima i radnim knjigama upotrebljavate CASE naredbe, u obzir uzmite stupce izvješća i redoslijed sabiranja jer će oni utjecati na izračun izraza i podzbrojeva.

  • Općenito, kad upotrebljavate CASE izraze, provjerite jesu li svi stupci koji se upotrebljavaju u izrazu uključeni u izvješće.

  • Ako je bitan redoslijed sabiranja, promijenite pravilo sabiranja izvješća sa Zadano na Zbroj.
  • Ako se uvjet treba procijeniti prije no što se sabiranje izračuna (na primjer, ako filtriran stupac nije prikazan u izvješću), upotrijebite funkciju FILTER.

Primjer

U ovom primjeru upotrebljavaju se podaci za Brend, Vrstu proizvoda i Prihod.
Slijedi opis za GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png

Kako biste primijenili uvjet za postavljanje prihoda za kameru na 0, napravite sljedeći uvjetni izraz: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Kad se Product_Type isključi iz izvješća, podaci nisu dostupni za procjenu izraza jer on sadrži Product_Type, a rezultati su:
Slijedi opis za GUID-22873F41-3679-45DF-821D-4167594FE069-default.png
.png

Ako dodate PRODUCT_TYPE u izvješće i postavite sabiranje izvješća na SUM, rezultati će se sabrati nakon izračuna vrijednosti na osnovnoj razini:
Slijedi opis za GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png

Alternativa za upotrebu CASE naredbe jest upotreba izraza filtra: FILTER(Revenue using Product_Type != ‘Camera’). Izraz se izračunava neovisno o stupcima izvješća, a sabiranja se primjenjuju nakon izračuna:
Slijedi opis za GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png
.png