Operador where

Filtra una tabla para el subconjunto de filas que cumplen un predicado.

Los where operadores y filter son equivalentes

Syntax

T| wherePredicado

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
T string ✔️ Entrada tabular cuyos registros se van a filtrar.
Predicate string ✔️ Expresión que se evalúa como un bool para cada fila de T.

Devoluciones

Las filas de T en las que Predicate es true.

Nota

Todas las funciones de filtrado devuelven false en comparación con los valores NULL. Use funciones especiales compatibles con valores NULL para escribir consultas que controle valores NULL.

Consejos de rendimiento

  • Use comparaciones simples entre los nombres de columna y las constantes. ("Constant" significa constante de la tabla, por lo que now() y ago() son correctos, y también lo son los valores escalares asignados mediante una cláusula let).

    Por ejemplo, se prefiere where Timestamp >= ago(1d) a where bin(Timestamp, 1d) == ago(1d).

  • Primero los términos más simples: si tiene varias cláusulas unidas con and, coloque primero las cláusulas que impliquen una sola columna. Así pues, es mejor usar Timestamp > ago(1d) and OpId == EventId que al revés.

Para obtener más información, consulte el resumen de operadores de cadena disponibles y el resumen de operadores numéricos disponibles.

Ejemplos

Comparaciones de pedidos por complejidad

La consulta siguiente devuelve registros de tormenta que notifican propiedades dañadas, son inundaciones y comienzan y terminan en diferentes lugares.

Observe que colocamos la comparación entre dos columnas por última vez, ya que el operador where no puede usar el índice y fuerza un examen.

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

En la tabla siguiente solo se muestran los 10 primeros resultados. Para ver la salida completa, ejecute la consulta.

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

Comprobación de si la columna contiene una cadena

La consulta siguiente devuelve las filas en las que aparece la palabra "cow" en cualquier columna.

StormEvents
| where * has "cow"