Or
逻辑运算符Or和IIF函数配合使用(不仅仅可用于IIF函数),用多个判断条件的结果来决定最终结果为真还是假。
语法
IIF(search_condition1 Or search_condition2, true_part, false_part)
参数
search_condition | 逻辑表达式 |
or | 连接两个表达式的逻辑运算符 |
true_part | 条件为真时的取值 |
false_part | 条件为假时的取值 |
备注
逻辑运算符可以连接两个表达式,两个表达式结果共同决定最终的结果是True还是False。下面是Or在连接两个条件时的所有情况。
口诀:一真为真
条件1 | 条件2 | 返回值 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
示例一
with member [期间].[MyMember] as IIF ([期间].&[50648] < -9999 or [期间].&[50648] > -10001 ,[期间].&[50649] ,[期间].&[50650])
select {[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows, {[组织].&[50582]} on columns from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品 : 不分
场景 : 累计预算
版本 : 年初编报01版本
科目 : 研究开发费
期间 | 北京总部本部 |
MyMember | 4200.00 |
2023年7月 | -10000.00 |
2023年8月 | 4200.00 |
2023年9月 | 6800.00 |
[期间]维度上key为50648的成员对应的元组值为-10000.00,小于-9999或大于-10001,同时满足小于-9999和大于-10001,因此[期间]维度用的是key为50649的成员对应的元组的值,即4200.00。
示例二
with member [期间].[MyMember] as IIF ([期间].&[50648] > -9999 or [期间].&[50649] > 4199 ,[期间].&[50649] ,[期间].&[50650])
select {[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows, {[组织].&[50582]} on columns from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品 : 不分
场景 : 累计预算
版本 : 年初编报01版本
科目 : 研究开发费
期间 | 北京总部本部 |
MyMember | 4200.00 |
2023年7月 | -10000.00 |
2023年8月 | 4200.00 |
2023年9月 | 6800.00 |
[期间]维度上key为50648的成员对应的元组值为-10000.00,大于-9999,[期间]维度上key为50649的成员对应的元组值为4200.00,大于4199.00,[期间]维度上key为50648的成员对应的元组值不满足大于-9999的条件,因此[期间]维度用的是key为50648的成员对应的元组的值,即4200.00。
示例三
with member [期间].[MyMember] as IIF ([期间].&[50648] > -9999 or [期间].&[50649] < 4199 ,[期间].&[50649] ,[期间].&[50650])
select {[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows, {[组织].&[50582]} on columns from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品 : 不分
场景 : 累计预算
版本 : 年初编报01版本
科目 : 研究开发费
期间 | 北京总部本部 |
MyMember | 6800.00 |
2023年7月 | -10000.00 |
2023年8月 | 4200.00 |
2023年9月 | 6800.00 |
[期间]维度上key为50648的成员对应的元组值为-10000.00,大于-9999,[期间]维度上key为50649的成员对应的元组值为4200.00,不满足小于4199.00,[期间]维度上key为50648的成员对应的元组值不满足大于-9999的条件,因此[期间]维度用的是key为50650的成员对应的元组的值,即6800.00。