Operador has_any
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Filtra un conjunto de registros para los datos con cualquier conjunto de cadenas que no distinguen mayúsculas de minúsculas. has_any
busca términos indexados, donde un término indizado es de tres o más caracteres. Si el término tiene menos de tres caracteres, la consulta examina los valores de la columna, que es más lento que buscar el término en el índice de términos.
Para obtener más información sobre otros operadores y determinar qué operador es más adecuado para la consulta, consulte operadores de cadena de tipo de datos.
Consejos de rendimiento
Nota:
Cuando se usan más de 128 términos de búsqueda, la optimización de búsqueda de índices de texto está deshabilitada, lo que podría provocar una reducción del rendimiento de las consultas.
Sintaxis
Expresión T |
where
col ... has_any
(
,
)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
T | string |
✔️ | Entrada tabular que se va a filtrar. |
col | string |
✔️ | Columna por la que se va a filtrar. |
expression | escalar o tabular | ✔️ | Expresión que especifica los valores para los que se va a buscar. Cada expresión puede ser un valor escalar o una expresión tabular que genera un conjunto de valores. Si una expresión tabular tiene varias columnas, se usa la primera columna. La búsqueda tendrá en cuenta hasta 10 000 valores distintos. |
Nota:
Una expresión tabular insertada debe incluirse entre paréntesis dobles. Vea el ejemplo.
Devoluciones
Las filas de T en las que el predicado es true
.
Ejemplos
Lista de escalares
En la consulta siguiente se muestra cómo usar has_any
con una lista separada por comas de valores escalares.
StormEvents
| where State has_any ("CAROLINA", "DAKOTA", "NEW")
| summarize count() by State
Salida
Valor | count_ |
---|---|
NUEVA YORK | 1750 |
CAROLINA DEL NORTE | 1721 |
DAKOTA DEL SUR | 1567 |
NEW JERSEY | 1044 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
NEW MEXICO | 5:27 |
NEW HAMPSHIRE | 394 |
Matriz dinámica
En la consulta siguiente se muestra cómo usar has_any
con una matriz dinámica.
StormEvents
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State
Salida
Valor | count_ |
---|---|
CAROLINA DEL NORTE | 1721 |
DAKOTA DEL SUR | 1567 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
ATLÁNTICO SUR | 193 |
ATLANTIC NORTH | 188 |
La misma consulta también se puede escribir con una instrucción let.
let areas = dynamic(['south', 'north']);
StormEvents
| where State has_any (areas)
| summarize count() by State
Salida
Valor | count_ |
---|---|
CAROLINA DEL NORTE | 1721 |
DAKOTA DEL SUR | 1567 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
ATLÁNTICO SUR | 193 |
ATLANTIC NORTH | 188 |
Expresión tabular
En la consulta siguiente se muestra cómo usar has_any
con una expresión tabular insertada. Observe que una expresión tabular insertada debe incluirse entre paréntesis dobles.
StormEvents
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State
Salida
Valor | count_ |
---|---|
TEXAS | 4701 |
ILLINOIS | 2022 |
MISURI | 2016 |
GEORGIA | 1983 |
MINNESOTA | 1881 |
... | ... |
La misma consulta también se puede escribir con una instrucción let. Tenga en cuenta que los paréntesis dobles tal como se proporciona en el último ejemplo no son necesarios en este caso.
let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents
| where State has_any (large_states)
| summarize count() by State
Salida
Valor | count_ |
---|---|
TEXAS | 4701 |
ILLINOIS | 2022 |
MISURI | 2016 |
GEORGIA | 1983 |
MINNESOTA | 1881 |
... | ... |