Sdílet prostřednictvím


Operátor where

Filtruje tabulku na podmnožinu řádků, které splňují predikát.

Operátory where a filter operátory jsou ekvivalentní

Syntaxe

Predikát T | where

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
T string ✔️ Tabulkový vstup, jehož záznamy mají být filtrovány.
Predikát string ✔️ Výraz, který se vyhodnotí jako logická hodnota pro každý řádek v jazyce T.

Návraty

Řádky v T, pro které je truepredikát .

Poznámka:

Všechny funkce filtrování vrátí hodnotu false ve srovnání s hodnotami null. Pomocí speciálních funkcí podporujících hodnotu null můžete psát dotazy, které zpracovávají hodnoty null.

Tipy týkající se výkonu

  • Používejte jednoduchá porovnání názvů sloupců a konstant. ("Konstanta" znamená konstantu nad tabulkou – tak now() a ago() jsou v pořádku, a proto jsou skalární hodnoty přiřazené pomocí let příkazu.)

    Například raději where Timestamp >= ago(1d) where bin(Timestamp, 1d) == ago(1d).

  • Nejjednodušší termíny: Pokud máte více klauzulí konjoinovaných s and, vložte nejprve klauzule, které zahrnují pouze jeden sloupec. Takže Timestamp > ago(1d) and OpId == EventId je lepší než naopak.

Další informace naleznete v souhrnu dostupných řetězcových operátorů a souhrn dostupných numerických operátorů.

Příklady

Porovnání objednávek podle složitosti

Následující dotaz vrátí záznamy storm, které hlásí poškozenou vlastnost, jsou záplavy a začínají a končí na různých místech.

Všimněte si, že porovnání mezi dvěma sloupci jsme umístili jako poslední, protože operátor, kde operátor nemůže použít index a vynutí kontrolu.

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

Následující tabulka zobrazuje pouze prvních 10 výsledků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

DamageProperty Typ události Počáteční poloha EndLocation
5000 Povodeň FAYETTE CITY LOWBER
5000 Povodeň MORRISVILLE WEST WAYNESBURG
10000 Povodeň COPELAND HARRIS GROVE
5000 Povodeň GLENFORD MT PERRY
250 000 Povodeň EAST SENECA BUFFALO AIRPARK ARPT
20 000 Povodeň EBENEZER SLOAN
10000 Povodeň BUEL CALHOUN
10000 Povodeň GOODHOPE WEST MILFORD
5000 Povodeň DUNKIRK FOREST
20 000 Povodeň FARMTON MANNINGTON

Kontrola, jestli sloupec obsahuje řetězec

Následující dotaz vrátí řádky, ve kterých se slovo "kráva" zobrazí v libovolném sloupci.

StormEvents
| where * has "cow"