CASE
Omschrijving
CASE
is een rijfunctie die elke rij in de gegevensset evalueert op basis van een of meer invoervoorwaarden en het opgegeven resultaat uitvoert wanneer aan de invoervoorwaarden wordt voldaan.Syntaxis
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
Retourwaarde
Retourneert één waarde per rij van hetzelfde type als de uitvoerexpressie. Alle uitvoerexpressies moeten hetzelfde veldtype retourneren.
Als er meerdere uitvoerexpressies zijn die verschillende veldtypen retourneren, moet u uw hele veld insluiten
CASE
expressie in een van de veldtypeconversiefuncties, zoals TO_INT
, om alle uitvoerwaarden expliciet naar een bepaald veldtype te casten.Invoerparameters
- WHENinvoervoorwaarde
- Vereist. DeWHENwordt gebruikt om een of meer Boole-expressies op te geven (zie de ondersteunde voorwaardelijke operatoren). Als een invoerwaarde aan de voorwaarde voldoet, wordt de uitvoerexpressie toegepast. Invoervoorwaarden kunnen andere rijfuncties in hun expressie bevatten, maar geen samenvattingsfuncties of eenheidsuitdrukkingen. U kunt de gebruikenANDofORtrefwoorden om meerdere invoervoorwaarden te combineren.
- THENoutput_expression
- Vereist. DeTHENwordt gebruikt om een uitvoerexpressie op te geven wanneer aan de opgegeven voorwaarden wordt voldaan. Uitvoerexpressies kunnen andere rijfuncties in hun expressie bevatten, maar kunnen geen samenvattingsfuncties of eenheidsuitdrukkingen bevatten.
- ELSEother_output_expression
- Optioneel. DeELSEkan worden gebruikt om een alternatieve uitvoerexpressie op te geven die moet worden gebruikt wanneer niet aan de opgegeven voorwaarden wordt voldaan. AlsELSEexpressie is niet opgegeven,ELSE NULLis de standaardwaarde.
- EINDE
- Vereist. Geeft het einde van aanCASEfunctieverwerking.
Voorbeelden
Waarden in de
leeftijdskolom
converteren naar op bereik gebaseerde groeperingen (binning):CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
Waarden in de kolom
'Gender'
van de ene tekenreeks naar de andere transformeren:CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
De
voertuigkolom
bevat de volgende waarden: vrachtwagen, bus, auto, scooter, wagen, fiets, driewieler en motor. In het volgende voorbeeld worden meerdere waarden in de voertuigkolom
geconverteerd naar één waarde:CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END