!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 |
where
col !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 |
... | ... |