has_any 运算符
筛选记录集中包含任意一组不区分大小写的字符串的数据。 has_any
搜索关键词,一个索引词包含三个或三个以上字符。 如果字少于三个字符,则查询会扫描列中的值,这比在字索引中查找字要慢。
有关其他运算符的详细信息以及确定哪个运算符最适合你的查询,请参阅数据类型字符串运算符。
语法
T |
where
col has_any
(
expression,
... )
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
T | string |
✔️ | 要筛选的表格输入。 |
col | string |
✔️ | 进行筛选所依据的列。 |
expression | 标量或表格 | ✔️ | 一个表达式,用于指定要搜索的值。 每个表达式都可以是一个标量值或一个生成一组值的表格表达式。 如果表格表达式包含多个列,则会使用第一个列。 搜索将考虑最多 10,000 个非重复值。 |
注意
内联表格表达式必须用双括号括起来。 请查看示例。
返回
其谓词为 true
的 T 中的行。
示例
标量列表
以下查询演示如何将 has_any
与逗号分隔的标量值列表一起使用。
StormEvents
| where State has_any ("CAROLINA", "DAKOTA", "NEW")
| summarize count() by State
输出
状态 | count_ |
---|---|
NEW YORK | 1750 |
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1567 |
NEW JERSEY | 1044 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
NEW MEXICO | 527 |
NEW HAMPSHIRE | 394 |
动态数组
以下查询演示如何将 has_any
与动态数组一起使用。
StormEvents
| where State has_any (dynamic(['south', 'north']))
| summarize count() by State
输出
状态 | count_ |
---|---|
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1567 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
大西洋南部 | 193 |
ATLANTIC NORTH | 188 |
也可以使用 let 语句编写相同的查询。
let areas = dynamic(['south', 'north']);
StormEvents
| where State has_any (areas)
| summarize count() by State
输出
状态 | count_ |
---|---|
NORTH CAROLINA | 1721 |
SOUTH DAKOTA | 1567 |
SOUTH CAROLINA | 915 |
NORTH DAKOTA | 905 |
大西洋南部 | 193 |
ATLANTIC NORTH | 188 |
表格表达式
以下查询演示如何将 has_any
与内联表格表达式一起使用。 请注意,内联表格表达式必须用双括号括起来。
StormEvents
| where State has_any ((PopulationData | where Population > 5000000 | project State))
| summarize count() by State
输出
状态 | count_ |
---|---|
德克萨斯 | 4701 |
ILLINOIS | 2022 |
MISSOURI | 2016 |
佐治亚州 | 1983 |
明尼苏达州 | 1881 |
... | ... |
也可以使用 let 语句编写相同的查询。 请注意,在这种情况下,上例中提供的双括号不是必需的。
let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents
| where State has_any (large_states)
| summarize count() by State
输出
状态 | count_ |
---|---|
德克萨斯 | 4701 |
ILLINOIS | 2022 |
MISSOURI | 2016 |
佐治亚州 | 1983 |
明尼苏达州 | 1881 |
... | ... |