!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|wherecol!in(expression, ... )

详细了解语法约定

参数

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

返回

其谓词为 true 的 T 中的行。

示例

标量列表

以下查询演示如何将 !in 与逗号分隔的标量值列表一起使用。

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

输出

计数
54291

动态数组

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

StormEvents 
| where State !in (dynamic(["FLORIDA", "GEORGIA", "NEW YORK"])) 
| count

输出

计数
54291

也可以使用 let 语句编写相同的查询。

let states = dynamic(["FLORIDA", "GEORGIA", "NEW YORK"]);
StormEvents 
| where State !in (states)
| summarize count() by State

输出

计数
54291

表格表达式

以下查询演示如何将 !in 与内联表格表达式一起使用。 请注意,内联表格表达式必须用双括号括起来。

StormEvents 
| where State !in (PopulationData | where Population > 5000000 | project State)
| summarize count() by State

输出

状态 Count
KANSAS 3166
衣阿华州 2337
內布拉斯加州 1766
OKLAHOMA 1716
SOUTH DAKOTA 1567
... ...

也可以使用 let 语句编写相同的查询。 请注意,在这种情况下,上例中提供的双括号不是必需的。

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State !in (large_states)
| summarize count() by State

输出

状态 Count
KANSAS 3166
衣阿华州 2337
內布拉斯加州 1766
OKLAHOMA 1716
SOUTH DAKOTA 1567
... ...