where-operatorn

Filtrerar en tabell till den delmängd av rader som uppfyller ett predikat.

Operatorerna where och filter är likvärdiga

Syntax

T| wherePredikat

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
T string ✔️ Tabellindata vars poster ska filtreras.
Predikat string ✔️ Uttryck som utvärderas till en bool för varje rad i T.

Returer

Rader i T för vilka Predikat är true.

Anteckning

Alla filtreringsfunktioner returnerar false jämfört med null-värden. Använd särskilda null-medvetna funktioner för att skriva frågor som hanterar null-värden.

Prestandatips

  • Använd enkla jämförelser mellan kolumnnamn och konstanter. ("Konstant" betyder konstant över tabellen – så now() och ago() är OK, och så är skalärvärden tilldelade med hjälp av en let instruktion.)

    Du kan till exempel föredra where Timestamp >= ago(1d) att where bin(Timestamp, 1d) == ago(1d).

  • Enklaste termer först: Om du har flera satser som är kopplade till andplacerar du först de satser som bara omfattar en kolumn. Det Timestamp > ago(1d) and OpId == EventId är bättre än tvärtom.

Mer information finns i sammanfattningen av tillgängliga strängoperatorer och sammanfattningen av tillgängliga numeriska operatorer.

Exempel

Orderjämförelser efter komplexitet

Följande fråga returnerar stormposter som rapporterar skadad egenskap, är översvämningar och startar och slutar på olika platser.

Observera att vi placerar jämförelsen mellan två kolumner sist, eftersom operatorn där inte kan använda indexet och tvingar fram en genomsökning.

StormEvents
| project DamageProperty, EventType, BeginLocation, EndLocation
| where DamageProperty > 0
    and EventType == "Flood"
    and BeginLocation != EndLocation 

Följande tabell visar bara de 10 främsta resultaten. Kör frågan om du vill se fullständiga utdata.

DamageProperty Eventtype BeginLocation EndLocation
5000 Översvämning FAYETTE STAD LOWBER
5000 Översvämning MORRISVILLE VÄSTRA WAYNESBURG
10000 Översvämning COPELAND HARRIS GROVE
5000 Översvämning GLENFORD MT PERRY
25000 Översvämning EAST SENECA BUFFALO AIRPARK ARPT
20000 Översvämning EBENEZER SLOAN
10000 Översvämning BUEL CALHOUN
10000 Översvämning GOODHOPE WEST MILFORD
5000 Översvämning DUNKIRK SKOG
20000 Översvämning FARMINGTON MANNINGTON

Kontrollera om kolumnen innehåller sträng

Följande fråga returnerar de rader där ordet "ko" visas i valfri kolumn.

StormEvents
| where * has "cow"