operator where

Memfilter tabel ke subkumpulan baris yang memenuhi predikat.

Operator where dan filter setara

Sintaks

T| wherePredicate

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
T string ✔️ Input tabular yang rekamannya akan difilter.
Predikat string ✔️ Ekspresi yang mengevaluasi ke bool untuk setiap baris di T.

Mengembalikan

Baris di T yang Predicate-nya adalah true.

Catatan

Semua fungsi pemfilteran mengembalikan false jika dibandingkan dengan nilai null. Gunakan fungsi khusus yang sadar null untuk menulis kueri yang menangani nilai null.

Tips performa

  • Gunakan perbandingan sederhana antara kolom nama dan konstanta. ('Konstanta' berarti konstanta pada tabel - jadi now() dan ago() baik-baik saja, begitu juga dengan nilai skalar yang ditetapkan menggunakan letpernyataan.)

    Misalnya, pilih where Timestamp >= ago(1d) ke where bin(Timestamp, 1d) == ago(1d).

  • Dahulukan istilah yang paling sederhana: Jika Anda memiliki beberapa klausul yang disatukan dengan and, dahulukan klausul yang hanya melibatkan satu kolom. Jadi Timestamp > ago(1d) and OpId == EventId lebih baik dari sebaliknya.

Untuk informasi selengkapnya, lihat ringkasan operator String yang tersedia dan ringkasan operator Numerik yang tersedia.

Contoh

Perbandingan pesanan berdasarkan kompleksitas

Kueri berikut mengembalikan rekaman storm yang melaporkan properti yang rusak, adalah banjir, dan dimulai dan berakhir di tempat yang berbeda.

Perhatikan bahwa kami menempatkan perbandingan antara dua kolom terakhir, karena operator di mana tidak dapat menggunakan indeks dan memaksa pemindaian.

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

Tabel berikut ini hanya memperlihatkan 10 hasil teratas. Untuk melihat output lengkap, jalankan kueri.

DamageProperty EventType BeginLocation EndLocation
5000 Banjir FAYETTE CITY LOWBER
5000 Banjir MORRISVILLE WEST WAYNESBURG
10000 Banjir COPELAND HARRIS GROVE
5000 Banjir GLENFORD MT PERRY
25000 Banjir EAST SENECA BUFFALO AIRPARK ARPT
20000 Banjir EBENEZER SLOAN
10000 Banjir BUEL CALHOUN
10000 Banjir GOODHOPE WEST MILFORD
5000 Banjir HUTAN DUNKIRK
20000 Banjir FARMINGTON MANNINGTON

Periksa apakah kolom berisi string

Kueri berikut mengembalikan baris di mana kata "sapi" muncul di kolom apa pun.

StormEvents
| where * has "cow"