![]() |
|
Case-satserCase-satser utgör byggstenar för att konstruera villkorsuttryck som kan ge olika resultat för olika kolumnvärden. Case (Switch)Den här typen av Case-satser kallas även CASE (Lookup). Värdet för uttryck 1 undersöks först, sedan WHEN-uttrycken. Om uttryck1 matchar något av WHEN-uttrycken tilldelas den värdet för motsvarande THEN-uttryck. Om uttryck1 matchar ett uttryck i fler än en WHEN-sats tilldelas endast det uttryck som följer på den första träffen. Om inget av WHEN-uttrycken matchar tilldelas det värde som anges i ELSE-uttrycket. Om inget ELSE-uttryck har angetts tilldelas värdet NULL. Se även satsen Case (If). Syntax: CASE-uttryck1 WHEN-uttryck THEN-uttryck {WHEN-uttryck... THEN-uttryck...} ELSE-uttryck END Där: CASE inleder CASE-uttrycket. Detta måste följas av ett uttryck och en eller fler WHEN- och THEN-uttryck, ett valfritt ELSE-uttryck och END-nyckelordet. WHEN Anger villkoret som ska uppfyllas. THEN Anger värdet som ska tilldelas om det motsvarande WHEN-uttrycket uppfylls. ELSE Anger värdet som ska tilldelas om inget av WHEN-villkoren uppfylls. Om detta utelämnas används ELSE NULL. END Avslutar CASE-satser. Exempel CASE Poängpar WHEN -5 THEN 'Birdie på par 6' WHEN -4 THEN 'Måste vara tiger' WHEN -3 THEN 'Tre under par' WHEN -2 THEN 'Två under par' WHEN -1 THEN 'Birdie' WHEN 0 THEN 'Par' WHEN 1 THEN 'Bogey' WHEN 2 THEN 'Dubbel bogey' ELSE 'Trippel-bogey eller Worse' END I exemplet ovan måste WHEN-satserna spegla en strikt likvärdighet, ett WHEN-villkor för WHEN < 0 THEN 'Under par' är inte giltig eftersom jämförelseoperatorer inte tillåts. Case (If)Den här formen av case-satser utvärderar ett WHEN-villkor och om det uppfylls tilldelas värdet i motsvarande THEN-uttryck. Om inget av WHEN-villkoren uppfylls tilldelas det standardvärde som anges i ELSE-uttrycket. Om inget ELSE-uttryck har angetts tilldelas värdet NULL. Se även satsen Case (Switch). Syntax: CASE WHEN frågevillkor1 THEN uttryck1 {WHEN frågevillkor1 THEN uttryck2} {WHEN frågevillkor... THEN uttryck...} ELSE-uttryck END Där: CASE inleder CASE-uttrycket. Detta måste följas av ett eller flera WHEN- och THEN-uttryck, ett valfritt ELSE-uttryck och END-nyckelordet. WHEN Anger villkoret som ska uppfyllas. THEN Värdet som ska tilldelas om motsvarande WHEN-uttryck uppfylls. ELSE Anger värdet om inget av WHEN-villkoren uppfylls. Om detta utelämnas används ELSE NULL. END Avslutar CASE-satser. Exempel CASE WHEN poäng < 0 THEN 'Under par' WHEN poängpar = 0 THEN 'Par' WHEN poängpar = 1 THEN 'Bogie' WHEN poängpar = 2 THEN 'Dubbel bogey' ELSE 'Trippel-bogey eller Worse' END Till skillnad från Switch-formen av CASE-satsen tillåter WHEN-uttryck i If-formen jämförelseoperatorer, ett WHEN-villkor för WHEN < 0 THEN 'Under par' är giltigt. |
Publicerat i Oktober 2016 | Copyright © 2005, 2016, Oracle. Oracle förbehåller sig samtliga rättigheter. Legal Notices. |