集合修饰符和集合运算符
集合运算符用于包含、排除或交汇不同的图元集。它们结合了不同的方法来定义元素集。
运算符与用于集合标识符的运算符相同。
运算符 | 说明 |
---|---|
+ | 并集运算符。此二元运算返回两个集合操作数中所有记录或元素构成的集合。 |
- | 异或运算符。此二元运算返回由属于第一个集合操作数但不属于另一个集合操作数的记录或元素构成的集合。如用于一元运算,则结果是补集。 |
* | 交集运算符。此二元运算返回两个集合操作数中所有记录或元素构成的集合。 |
/ | 对称差集 (XOR)。此二元运算返回两个集合操作数中所有记录或元素构成的集合。 |
例如,以下两个修饰符定义相同的字段值集:
-
<Year = {1997, "20*"}>
-
<Year = {1997} + {"20*"}>
这两个表达式都选择 1997 和以 20 开头的年份。换句话说,是这两个条件的结合。
集合运算符还允许更复杂的定义。例如:
<Year = {1997, "20*"} - {2000}>
此表达式将选择与上述年份相同的年份,但不包括年份 2000。
有关更多信息,请参阅集合运算符。
示例:带有集合运算符的集合修饰符的图表表达式
示例 | 结果 |
---|---|
sum( {$<Product = Product + {OurProduct1} – {OurProduct2} >} Sales ) | 返回当前选择项的销售额,但将产品“OurProduct1”添加到所选产品列表中,并从所选产品列表中移除“OurProduct2”。 |
sum( {$<Year = Year + ({“20*”,1997} – {2000}) >} Sales ) |
返回当前选择项的销售额,但字段“Year”中包含附加的选择项:1997 年和以“20”开头的所有年份,但不包括 2000 年。 注意:如果当前选择项中包含 2000,它也将在修改后被包括进来。 |
sum( {$<Year = (Year + {“20*”,1997}) – {2000} >} Sales ) |
返回的结果几乎与上例相同,但同时如果 2000 年最初包含在当前选择项中,此时将排除 2000 年。该例显示的是使用括号定义优先顺序的重要性。 |
sum( {$<Year = {“*”} – {2000}, Product = {“*bearing*”} >} Sales ) |
返回当前选择项的销售额,但在“Year”中包含新选择项:除 2000 年以外的所有年份;并且仅针对包含字符串 'bearing' 的产品。 |