in 运算符

筛选记录集中具有区分大小写的字符串的数据。

下表对 in 运算符进行了比较:

操作员 描述 区分大小写 示例(生成 true
in 等于某个元素 "abc" in ("123", "345", "abc")
!in 不等于任何元素 "bca" !in ("123", "345", "abc")
in~ 等于任何元素 "Abc" in~ ("123", "345", "abc")
!in~ 不等于任何元素 "bCa" !in~ ("123", "345", "ABC")

注意

嵌套数组将平展为单个值列表。 例如,x in (dynamic([1,[2,3]])) 重命名为 x in (1,2,3)

有关其他运算符的详细信息以及确定哪个运算符最适合你的查询,请参阅 datatype 字符串运算符

目前仅 ASCII 文本支持不区分大小写的运算符。 对于非 ASCII 比较,请使用 tolower() 函数。

性能提示

注意

性能取决于搜索的类型和数据的结构。 有关最佳做法,请参阅查询最佳做法

语法

T|wherecolin(expression, ... )

详细了解语法约定

参数

客户 类型​​ 必需 说明
T string 要筛选的表格输入。
col string 进行筛选所依据的列。
expression 标量或表格 一个表达式,用于指定要搜索的值。 要搜索的值。 每个表达式都可以是一个标量值或一个生成一组值的表格表达式。 如果表格表达式包含多个列,则会使用第一个列。 搜索将考虑最多 1,000,000 个非重复值。

注意

内联表格表达式必须用双括号括起来。 请查看示例

返回

其谓词为 true 的 T 中的行。

示例

标量列表

以下查询演示如何将 in 与标量值列表一起使用。

StormEvents 
| where State in ("FLORIDA", "GEORGIA", "NEW YORK") 
| count

输出

计数
4775

动态数组

以下查询演示如何将 in 与动态数组一起使用。

let states = dynamic(['FLORIDA', 'ATLANTIC SOUTH', 'GEORGIA']);
StormEvents 
| where State in (states)
| count

输出

计数
3218

表格表达式

以下查询演示如何将 in 与表格表达式一起使用。

let Top_5_States = 
    StormEvents
    | summarize count() by State
    | top 5 by count_; 
StormEvents 
| where State in (Top_5_States) 
| count

可以使用内联表格表达式语句编写同一查询。

StormEvents 
| where State in (
    StormEvents
    | summarize count() by State
    | top 5 by count_
    ) 
| count

输出

计数
14242

其他示例中的 Top

let Lightning_By_State = materialize(StormEvents
    | summarize lightning_events = countif(EventType == 'Lightning') by State);
let Top_5_States = Lightning_By_State | top 5 by lightning_events | project State; 
Lightning_By_State
| extend State = iff(State in (Top_5_States), State, "Other")
| summarize sum(lightning_events) by State 

输出

状态 sum_lightning_events
ALABAMA 29
威斯康星州 31
德克萨斯 55
佛罗里达州 85
佐治亚州 106
其他 415

使用函数返回的静态列表

StormEvents 
| where State in (InterestingStates()) 
| count

输出

计数
4775

函数定义。

.show function InterestingStates

输出

名称 parameters 正文 文件夹 DocString
InterestingStates () { dynamic(["WASHINGTON", "FLORIDA", "GEORGIA", "NEW YORK"]) }