Utilizaţi expresii condiţionate pt. a crea expresii care convertesc valori.
Expresiile condiţionate descrise în această secţiune sunt blocuri modulare pt. a crea expresii care convertesc o valoare dintr-o formă în alta.
Urmaţi aceste reguli:
CASE
, AND
are prioritate asupra OR
.Expresie | Exemplu | Descriere | Sintaxă |
---|---|---|---|
CASE (If) |
|
Evaluează fiecare condiţie Dacă nu este satisfăcută niciuna dintre condiţiile Notă: Consultaţi Cele mai bune practici pentru utilizarea instrucţiunilor CASE în analize şi vizualizări. |
|
CASE (Switch) |
|
Este referită, de asemenea, drept Dacă nu corespunde nicio expresie Dacă prima expresie corespunde unei expresii din mai multe clauze |
|
IfCase > ELSE |
- |
- |
|
IfCase > IFNULL |
- |
- |
|
IfCase > NULLIF |
- |
- |
|
IfCase > WHEN |
- |
- |
|
IfCase > CASE |
- |
- |
|
SwitchCase > ELSE |
- |
- |
|
SwitchCase >IFNULL |
- |
- |
|
SwitchCase > NULLIF |
- |
- |
|
SwitchCase > WHEN |
- |
- |
|
La utilizarea instrucţiunilor CASE în rapoarte şi registre de lucru, trebuie să ţineţi cont de coloanele raportului şi ordinea de agregare, deoarece acestea afectează modul de calculare pentru expresii şi subtotaluri.
În general, la utilizarea expresiile CASE, verificaţi ca orice coloane utilizate în expresii să fie incluse în raport.
Când o condiţie trebuie să fie evaluată înainte de calcularea agregării (de exemplu, dacă coloana filtrată nu este afişată în raport), utilizaţi funcţia FILTER.
Exemplu
Acest exemplu utilizează date pentru brand, tip de produs şi venituri.
.png
Pentru aplicarea unei condiţii pentru setarea venitului Camera la 0, creaţi următoarea expresie condiţională: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END
.
Când Product_Type este exclus din raport, datele nu sunt disponibile pentru evaluarea expresiei, deoarece conţine Product_Type, iar rezultatele sunt:
.png
Prin adăugarea PRODUCT_TYPE la raport şi setarea agregării raportului la SUM, rezultatele sunt agregate după calcularea valorilor nivelului de bază:
.png
O alternativă la utilizarea CASE este utilizarea unei expresii de filtrare: FILTER(Revenue using Product_Type != ‘Camera’). Expresia este calculată independent de coloanele de raportare, iar agregările sunt aplicate după calcul:
.png