operator where
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Filtruje tabelę do podzbioru wierszy, które spełniają predykat.
Operatory
where
ifilter
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życiulet
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ęcTimestamp > 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"