1. 概述

通过逻辑函数您可以确定某个特定条件为真还是假(布尔逻辑)。本文介绍本产品中的逻辑函数及其用途。

2. 示例

例如,您可能希望快速确定您分销商品的每个地区的销售额是高于还是低于特定阈值。

语法:

SUM([销售额]) > 1,000,000

结果:

逻辑函数 - 图1

3. 可用逻辑函数列表

函数 说明 语法 示例
AND 逻辑与,对两个表达式执行逻辑合取运算。 布尔值1 AND 布尔值2 [销售额] >= 0 AND [销售额] <= 8000
CASE 执行逻辑测试并返回相应的值。CASE 函数可评估表达式,并将其与一系列值(值1、值2等)比较,然后返回结果。遇到一个与表达式匹配的值时,CASE返回相应的返回值。如果未找到匹配值,则使用默认返回表达式。如果不存在默认返回表达式并且没有任何值匹配,则会返回 Null。 CASE 表达式 WHEN 值1 THEN 返回值1 ... [ELSE 默认返回值] CASE [产品ID] WHEN 1 THEN "家具" WHEN 2 THEN "电器" ELSE STR([产品ID])
IF 测试一系列表达式,同时为第一个为 true 的 返回 值。 IF 条件 THEN 返回值1 ELSE 返回值2 简单用法:IF [销售额] > 100 THEN "优" ELSE "差"
嵌套用法:IF [销售额] > 100 THEN "优" ELSE IF [销售额] > 50 THEN "良" ELSE "差"
null值处理: 不符合if条件的结果就为null,不写else的值就是null
IIF 检查某个条件是否得到满足,如果为 TRUE 则返回值1,如果为 FALSE 则返回值2,如果值2不填写,则会返回NULL。 IIF(条件, 值1, 值2) IIF([利润] > 0, 盈利, 亏损)
IFNULL 是否空,如果表达式1不为null,则返回它,否则返回表达式2。 IFNULL(表达式1, 表达式2) IFNULL([field], 0)
ISNULL 空值判断,判断表达式的值是否为NULL ISNULL(表达式) IF ISNULL([用户名]) THEN "匿名用户" ELSE [用户名]
NOT 逻辑否,对一个表达式执行逻辑非运算。 NOT 布尔值 NOT [用户名] = "小张"
MAXIMUM 最大值比较,对同一类型的表达式进行比较,返回两个或多个表达式对于每个记录的最大值。支持数值型、日期型、字符串。 MAXIMUM(表达式1, 表达式2, ...) MAXIMUM(1, 2) = 2
MAXIMUM([销售额],[数量])
MINIMUM 最小值比较,对同一类型的表达式进行比较,返回两个或多个表达式对于每个记录的最小值。支持数值型、日期型、字符串。 MINIMUM(表达式1, 表达式2, ...) MINIMUM(1, 2) = 1
MINMUM([销售额],[数量])
MEMBER_CALC 计算由布尔表达式对数据进行筛选后的数值度量结果。
如果布尔表达式为MEMBER_RULE函数,那么可以根据MEMBER_RULE中书写的特殊规则对数值度量的结果进行四则计算。
MEMBER_CALC(数值度量, 布尔表达式) MEMBER_CALC(SUM([销售额]), [地区]="东北") 表示计算地区为东北的数据行的销售额求和;
MEMBER_CALC(SUM([销售额]), MEMBER_RULE([地区]."东北" & [类别]."家具" + [地区]."华北")) 表示分别计算地区为东北且类别为家具的数据行的销售额求和、以及地区为华北的数据行的销售额求和,然后把两个结果相加。
MEMBER_RULE 描述成员之间的计算规则,需要和MEMBER_CALC函数结合使用,不能单独使用。 MEMBER_RULE(规则) MEMBER_RULE([地区]."东北" & [类别]."家具" + [地区]."华北") 表示分别计算地区为东北且类别为家具的数据行的度量结果、以及地区为华北的数据行的度量结果,然后把两个结果相加
OR 逻辑或运算 布尔值1 OR 布尔值2 [用户名] = "小张" OR [用户名] = "小李"
ZN 若空则零,如果表达式不为null,则返回它,否则返回零。 ZN(表达式) ZN(1) = 1
比较运算 比较两个表达式,返回布尔值,可用的比较符有:=, !=, >, <, >=, <= ,分别表示 等于、不等于、大于、小于、大于等于、小于等于 表达式1 比较符 表达式2 [销售额] >= 8000