Villkorsuttryck

Du använder villkorsuttryck till att skapa uttryck som konverterar värden.

De villkorsuttryck som beskrivs i det här avsnittet är byggstenar för att skapa uttryck som konverterar ett värde från en form till en annan.

Följ dessa regler:

  • I CASE-satser har AND företräde framför OR.
  • Strängarna måste vara inom citattecken.
Uttryck Exempel Beskrivning Syntax

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

Utvärderar varje WHEN-villkor. Om de uppfylls tilldelas värdet i motsvarande THEN-uttryck.

Om inget av WHEN-villkoren uppfylls tilldelas standardvärdet angivet i ELSE-uttrycket. Om inget ELSE-uttryck är angivet läggs ett ELSE NULL automatiskt till av systemet.

Obs! Se Riktlinjer för att använda CASE-satser i analyser och visualiseringar.

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

Kallas även för CASE (Lookup). Det första uttryckets värde granskas och därefter granskas WHEN-uttrycken. Om det första uttrycket matchar något WHEN-uttryck tilldelas värdet i motsvarande THEN-uttryck.

Om inget av WHEN-uttrycken matchar tilldelas standardvärdet angivet i ELSE-uttrycket. Om inget ELSE-uttryck är angivet läggs ett ELSE NULL automatiskt till av systemet.

Om det första uttrycket matchar ett uttryck i flera WHEN-satser tilldelas endast det uttryck som följer den första matchningen.

Obs! Se Riktlinjer för att använda CASE-satser i analyser och visualiseringar.

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]

Riktlinjer för att använda CASE-satser i analyser och visualiseringar

När du använder CASE-satser i rapporter och arbetsböcker ska du beakta rapportkolumnerna och aggregeringsordningen eftersom dessa påverkar hur uttryck och delsummor beräknas.

  • När du använder CASE-uttryck ska du i allmänhet se till att alla kolumner som används i uttrycket inkluderas i rapporten.

  • Ändra rapportens aggregeringsregel från Standard till Summa om aggregeringsordningen är viktig.
  • Använd funktionen FILTER om ett villkor måste utvärderas innan aggregeringen beräknas (till exempel om kolumnen som filtreras inte visas i rapporten).

Exempel

I det här exemplet används data för Varumärke, Produkttyp och Intäkt.
Beskrivning av GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png följer
.png

Tillämpa ett villkor som anger 0 för Kameraintäkt genom att skapa följande villkorsuttryck: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

När Product_Type exkluderas från rapporten är data inte tillgängliga för utvärdering av uttrycket, eftersom det innehåller Product_Type, och resultaten blir:
Beskrivning av GUID-22873F41-3679-45DF-821D-4167594FE069-default.png följer
.png

Genom att lägga till PRODUCT_TYPE i rapporten och ställa in rapportaggregeringen på SUM samlas resultaten när basnivåvärdena har beräknats.
Beskrivning av GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png följer
.png

Ett alternativ till CASE är att använda ett filteruttryck: FILTER(Revenue using Product_Type != ‘Camera’). Uttrycket beräknas oberoende av rapportkolumner och aggregeringar tillämpas efter beräkningen:
Beskrivning av GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png följer
.png