跳转至

过滤运算符参考

过滤字段写为 对象别名.列名。每个运算符对每一行求值为真或假:为真的行被保留,为假的行被排除;空值如何参与判断见各运算符说明。同一条件组内使用 AND,不同条件组之间使用 OR。

运算符一览

运算符 值1 值2 判断 示例值
= 必填 等于 paid
!= 必填 不等于 cancelled
> 必填 大于 100
>= 必填 大于等于 100
< 必填 小于 100
<= 必填 小于等于 100
IN 必填 属于值列表 paid,shipped
NOT IN 必填 不属于值列表 cancelled,closed
BETWEEN 必填 必填 位于闭区间,包含两端 100500
LIKE 必填 整个字段值匹配模式 华%
NOT LIKE 必填 整个字段值不匹配模式 %测试%
IS NULL 是空值 留空
IS NOT NULL 不是空值 留空

运算符不区分大小写;建议使用模板下拉框中的大写形式。

比较运算符

=!=>>=<<= 使用“值1”。例如:

字段 运算符 值1
o.amount >= 100

如果源字段是数值列,而 Excel 配置单元格被读取为文本,ExcelFlow 会尝试将值转换成整数或浮点数;日期时间列会使用 Pandas 日期解析。其他情况按原值比较。

普通比较最终会用 fillna(False) 将 Pandas 的缺失判断结果按“不满足”处理。不过不同源类型对 != 与空值的原始比较结果可能不同;需要明确判断空值时,应使用 IS NULLIS NOT NULL,不要依赖普通比较的空值行为。

IN 与 NOT IN

“值1”使用英文逗号分隔:

paid,shipped,completed

列表项会去除首尾空格,空项会被忽略。列表中的每个值同样按源字段类型做有限转换。

BETWEEN

“值1”是下界,“值2”是上界,两个边界都包含在结果中:

字段 运算符 值1 值2
o.amount BETWEEN 100 500

等价于 o.amount >= 100 AND o.amount <= 500

LIKE 与 NOT LIKE

模式支持两个通配符:

通配符 含义 示例
% 任意数量的任意字符,包括零个字符 华% 匹配以“华”开头的值
_ 恰好一个任意字符 A_01 匹配 AB01

匹配覆盖整个字段值,并区分大小写。例如 %测试% 表示任意位置包含“测试”。除 %_ 外的字符(包括正则表达式中的特殊字符)按普通字符处理。字段在匹配前转换为 Pandas 字符串类型。

空值的 LIKE 结果为不匹配;当前 NOT LIKE 是对该结果直接取反,因此空值会满足 NOT LIKE。如果不希望保留空值,应在同一条件组再加一条 IS NOT NULL

空值运算符

IS NULLIS NOT NULL 不读取“值1”和“值2”:

字段 运算符 值1 值2
c.customer_name IS NULL

这类条件常用于检查 LEFT JOIN 后未找到匹配记录的字段。

条件组示例

条件组 条件序号 字段 运算符 值1
1 1 o.status = paid
1 2 o.amount >= 100
2 1 o.region IN 华东,华南

实际逻辑为:

(o.status = paid AND o.amount >= 100)
OR
(o.region IN [华东, 华南])