operator where

Filtruje tabelę do podzestawu wierszy, które spełniają predykat.

Operatory where i filter są równoważne

Składnia

T| wherePredykat

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
T string ✔️ Dane wejściowe tabelaryczne, których rekordy mają być filtrowane.
Predykat string ✔️ Wyrażenie, które oblicza wartość logiczną dla każdego wiersza w języku T.

Zwraca

Wiersze w języku T , dla których predykat to true.

Uwaga

Wszystkie funkcje filtrowania zwracają wartość false w porównaniu z wartościami null. Używanie specjalnych funkcji obsługujących wartości null do zapisywania zapytań obsługujących wartości null.

Porady dotyczące wydajności

  • Użyj prostych porównań między nazwami kolumn i stałymi. ('Stała' oznacza stałą nad tabelą — tak now() i ago() są ok, a więc są wartości skalarne przypisane przy użyciu let instrukcji).

    Na przykład wolisz where Timestamp >= ago(1d) .where bin(Timestamp, 1d) == ago(1d)

  • Najprostsze terminy: jeśli masz wiele klauzul conjoined z and, umieść pierwsze klauzule, które obejmują tylko jedną kolumnę. Tak jest Timestamp > ago(1d) and OpId == EventId lepiej niż w drugą stronę.

Aby uzyskać więcej informacji, zobacz podsumowanie dostępnych operatorów ciągów i podsumowanie dostępnych operatorów liczbowych.

Przykłady

Porównanie kolejności według złożoności

Poniższe zapytanie zwraca rekordy burzy, które zgłaszają uszkodzoną właściwość, są powodziami i rozpoczynają się i kończą się w różnych miejscach.

Zwróć uwagę, że ostatnio umieściliśmy porównanie między dwiema kolumnami, ponieważ operator where nie może używać indeksu i wymusza skanowanie.

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

W poniższej tabeli przedstawiono tylko 10 pierwszych wyników. Aby wyświetlić pełne dane wyjściowe, uruchom zapytanie.

DamageProperty Typ zdarzenia BeginLocation EndLocation
5000 Powódź FAYETTE CITY LOWBER
5000 Powódź MORRISVILLE WEST WAYNESBURG
10 000 Powódź COPELAND HARRIS GROVE
5000 Powódź GLENFORD MT PERRY
25 000 Powódź EAST SENECA BUFFALO AIRPARK ARPT
20000 Powódź EBENEZER SLOAN
10 000 Powódź BUEL CALHOUN
10 000 Powódź GOODHOPE WEST MILFORD
5000 Powódź LAS DUNKIRK
20000 Powódź FARMINGTON MANNINGTON

Sprawdzanie, czy kolumna zawiera ciąg

Poniższe zapytanie zwraca wiersze, w których słowo "krowa" pojawia się w dowolnej kolumnie.

StormEvents
| where * has "cow"