Udostępnij za pośrednictwem


operator where

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

Operatory where i filter są równoważne

Składnia

Predykat T | where

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania 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żyj specjalnych funkcji obsługujących wartości null, aby zapisywać zapytania obsługujące wartości null.

Wskazówki 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 są OK, a więc są wartości skalarne przypisane przy użyciu let instrukcjiago() ).

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

  • Najprostsze terminy najpierw: jeśli masz wiele klauzul w połączeniu z elementem and, umieść najpierw klauzule, które obejmują tylko jedną kolumnę. Więc Timestamp > ago(1d) and OpId == EventId jest lepszy 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ą uszkodzone właściwości, są powodziami, a początek i koniec w różnych miejscach.

Zwróć uwagę, że po raz ostatni umieściliśmy porównanie między dwiema kolumnami, ponieważ operator where nie może użyć 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 EventType 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
25000 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ź DUNKIRK FOREST
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"