Feltételes kifejezések

A feltételes kifejezésekkel olyan kifejezéseket hozhat létre, amelyek átalakítják az értékeket.

Az ebben a szakaszban ismertetett feltételes kifejezések a kifejezések létrehozásához használt építőelemek, amelyek egy adott értéket egyik formából egy másikba alakítanak át.

Kövesse a következő szabályokat:

  • A CASE utasításokban az AND operátornak elsőbbsége van az OR operátorhoz képest.
  • A karakterláncokat egyszeres idézőjelbe kell tenni.
Kifejezés Példa Leírás Szintaxis

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

Kiértékeli az egyes WHEN feltételeket, és a feltételek teljesülése esetén a kapcsolódó THEN kifejezésben szereplő értéket fogja hozzárendelni.

Ha a WHEN feltételek egyike sem teljesül, az ELSE kifejezésben megadott alapértelmezett értéket rendeli hozzá. Ha nem lett megadva ELSE kifejezés, a rendszer automatikusan kiegészíti az ELSE NULL kifejezéssel.

Megjegyzés: See Legjobb gyakorlatok a CASE utasítások használatához elemzésekben és megjelenítéskbenc. fejezetet.

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

Így is megtalálható: CASE (Lookup). A program megvizsgálja az első kifejezés értékét, majd a WHEN kifejezéseket. Ha az első kifejezés bármelyik WHEN kifejezéssel egyezik, a program a kapcsolódó THEN kifejezésben szereplő értéket fogja hozzárendelni.

Ha a WHEN kifejezések egyike sem egyezik, az ELSE kifejezésben megadott alapértelmezett értéket rendeli hozzá. Ha nem lett megadva ELSE kifejezés, a rendszer automatikusan kiegészíti az ELSE NULL kifejezéssel.

Ha az első kifejezés több WHEN utasításrésszel is megegyezik, csak az első egyezést követő kifejezés hozzárendelésére kerül sor.

Megjegyzés: See Legjobb gyakorlatok a CASE utasítások használatához elemzésekben és megjelenítéskbenc. fejezetet.

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]

Legjobb gyakorlatok a CASE utasítások használatához elemzésekben és megjelenítésekben

Amikor CASE utasításokat használ kimutatásokban és munkafüzetekben, vegye figyelembe a kimutatás oszlopait és az összesítés sorrendjét, mivel ezek befolyásolják a kifejezések és részösszegek kiszámításának módját.

  • Általában a CASE-kifejezések használatakor ügyeljen arra, hogy a kifejezésben használt oszlopok szerepeljenek a kimutatásban.

  • Ha az összesítés sorrendje fontos, akkor módosítsa a jelentés összesítési szabályát Alapértelmezettről Összegre.
  • Ha az összesítés kiszámítása előtt ki kell értékelni egy feltételt (például ha a szűrt oszlop nem jelenik meg a kimutatásban), akkor használja a FILTER függvényt.

Példa

Ebben a példában a Márka, a Terméktípus és az Árbevétel adatai találhatók.
A(z) GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png leírása
.png ábra leírása

Ahhoz, hogy egy feltételt alkalmazzunk a fényképezőgép bevételének 0-ra állítására, a következő feltételes kifejezést állítsa be: CASE WHEN Product_Type = 'Camera' THEN 0 ELSE Revenue END.

Ha a Terméktípus ki van zárva a kimutatásból, akkor az adatok nem állnak rendelkezésre a kifejezés kiértékeléséhez, mivel az tartalmazza a Terméktípust, az eredmények pedig a következők:
A(z) GUID-22873F41-3679-45DF-821D-4167594FE069-default.png leírása
.png ábra leírása

Ha a PRODUCT_TYPE elemet hozzáadja a kimutatáshoz, és a jelentés összesítését SUM-ra állítja, akkor az eredmény az alapszintű értékek kiszámítása után aggregálódik:
A(z) GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png leírása
.png ábra leírása

A CASE használatának alternatívája a szűrő kifejezés használata: FILTER(Revenue using Product_Type != ‘Camera’). A kifejezés kiszámítása a jelentés oszlopaitól függetlenül történik, és az összesítés a számítás után történik:
A(z) GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png leírása
.png ábra leírása

.