Operátor where

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

Operátory where a filter jsou ekvivalentní.

Syntax

T| wherePredikátu

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

Parametry

Název Typ Vyžadováno Popis
T string ✔️ Tabulkový vstup, jehož záznamy se mají filtrovat.
Predikátu string ✔️ Výraz, který se vyhodnotí jako logická hodnota pro každý řádek v T.

Návraty

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

Poznámka

Všechny funkce filtrování vrací při porovnání s hodnotami null hodnotu false. K zápisu dotazů, které zpracovávají hodnoty null, použijte speciální funkce podporující hodnoty null.

Tipy pro zvýšení výkonu

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

    Například upřednostněte where Timestamp >= ago(1d)where bin(Timestamp, 1d) == ago(1d).

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

Další informace najdete v souhrnu dostupných řetězcových operátorů a v souhrnu dostupných číselných operátorů.

Příklady

Seřazení porovnání podle složitosti

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

Všimněte si, že porovnáváme dva sloupce jako poslední, protože operátor where 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 uvádí pouze prvních 10 výsledků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

Vlastnost poškození Typ události BeginLocation Koncová poloha
5000 Povodní FAYETTE CITY LOWBER
5000 Povodní MORRISVILLE WEST WAYNESBURG
10000 Povodní COPELAND HARRIS GROVE
5000 Povodní GLENFORD MT PERRY
250 000 Povodní EAST SENECA BUFFALO AIRPARK ARPT
20000 Povodní EBENEZER SLOAN
10000 Povodní BUEL CALHOUN
10000 Povodní GOODHOPE WEST MILFORD
5000 Povodní DUNKIRK FOREST
20000 Povodní FARMINGTON MANNINGTON

Kontrola, jestli sloupec obsahuje řetězec

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

StormEvents
| where * has "cow"