iff()
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Returnerar värdet then när villkoret if utvärderas till true
, annars returneras värdet else.
Funktionerna
iff()
ochiif()
är likvärdiga.
Syntax
iff(
if
,
then
,
else
)
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
if | string |
✔️ | Ett uttryck som utvärderas till ett booleskt värde. |
then | skalär | ✔️ | Ett uttryck som returnerar dess värde när villkoret if utvärderas till true . |
else | skalär | ✔️ | Ett uttryck som returnerar dess värde när villkoret if utvärderas till false . |
Returnerar
Den här funktionen returnerar värdet then när villkoret if utvärderas till true
, annars returneras värdet else.
Exempel
Klassificera data med iff()
Följande fråga använder funktionen iff()
för att kategorisera stormhändelser som antingen "Regnhändelse" eller "Inte regnhändelse" baserat på deras händelsetyp och projicerar sedan tillstånd, händelse-ID, händelsetyp och den nya regnkategorin.
StormEvents
| extend Rain = iff((EventType in ("Heavy Rain", "Flash Flood", "Flood")), "Rain event", "Not rain event")
| project State, EventId, EventType, Rain
utdata
I följande tabell visas endast de första fem raderna.
Stat | EventId | EventType | Regn |
---|---|---|---|
ATLANTEN, SÖDRA | 61032 | Vattenspout | Inte regnhändelse |
FLORIDA | 60904 | Kraftigt regn | Regnhändelse |
FLORIDA | 60913 | Tromb | Inte regnhändelse |
GEORGIEN | 64588 | Åskväder | Inte regnhändelse |
MISSISSIPPI | 68796 | Åskväder | Inte regnhändelse |
... | ... | ... | ... |
Kombinera iff() med andra funktioner
Följande fråga beräknar den totala skadan från grödor och egenskaper, kategoriserar allvarlighetsgraden för stormhändelser baserat på total skada, direkta skador och direkta dödsfall och sammanfattar sedan det totala antalet händelser och antalet händelser efter allvarlighetsgrad.
StormEvents
| extend TotalDamage = DamageCrops + DamageProperty
| extend Severity = iff(TotalDamage > 1000000 or InjuriesDirect > 10 or DeathsDirect > 0, "High", iff(TotalDamage < 50000 and InjuriesDirect == 0 and DeathsDirect == 0, "Low", "Moderate"))
| summarize TotalEvents = count(), SeverityEvents = count() by Severity
utdata
Stränghet | TotalEvents |
---|---|
Låg | 54805 |
Hög | 977 |
Moderat | 3284 |