运算符(MDX 语法)
在多维表达式 (MDX) 中,您可以使用运算符执行下列操作:
永久或临时更改数据。
搜索满足指定条件的值或对象。
在值或表达式之间实现某项决定。
在开始或提交事务之前,或在执行特定语句之前测试特定条件。
MDX 支持下表中列出的运算符:
若要执行这种运算 |
请使用 |
---|---|
为变量赋值,或将结果集列与别名相关联。 |
|
加法、减法、乘法、除法。 |
|
测试某个条件(如 AND、OR、NOT 和 XOR)的真实性。 |
|
将一个值与另一个值或表达式进行比较。 |
|
永久或临时将两个字符串合并成一个字符串。 |
|
永久或临时将两个集表达式合并成一个集。 |
|
对一个操作数执行操作。 |
注意 |
---|
在查询中,任何人只要能够查看多维数据集中要与某种运算符一起使用的数据,就可以执行操作。 但是,需要具有相应的权限才能成功更改数据。 |
同时使用多个运算符时,MDX 计算运算符的顺序非常重要。 同样,运算符的用户可能需要在计算运算符之前将一个数据类型转换为另一个数据类型。
计算复杂表达式
可以通过使用运算符合并几个较小的表达式来生成一个表达式。 在这些复杂的表达式中,MDX 基于 Microsoft SQL Server Analysis Services 使用的运算符优先级的定义按顺序计算运算符。 MDX 先计算具有较高优先级的运算符,后计算具有较低优先级的运算符。
了解运算符优先级
以下列表显示了运算符优先级,按从最高到最低的顺序排列。 位于同一行中的运算符具有相同的优先级,按从左到右的顺序进行计算,除非使用括号进行强制:
IS
AS
DISTINCT
:
^
/, *
+, -
EXISTING
<>, >=, =, <=, >, <
NOT
AND
XOR
OR
有关 MDX 中的运算符的详细信息,请参阅 MDX 运算符参考 (MDX)。
确定结果
将简单的表达式合并成复杂的表达式时,运算符的规则与数据类型优先级的规则一起决定结果值的数据类型。
如果结果是一个字符或 Unicode 值,则结果的排序规则由运算符的规则和排序优先级的规则一起决定。 有关排序规则的详细信息,请参阅语言和排序规则(Analysis Services - 多维数据)。
还有基于简单表达式的精度、小数位数和长度确定结果的精度、小数位数和长度的规则。
转换数据类型
当在需要另一种对象类型的表达式中使用某种对象时,MDX 将把该对象隐式转换为另一种类型。 下表定义了每种对象的转换规则。
原始类型 |
所需类型 |
转换 |
---|---|---|
级别 |
集 |
<level>.members |
层次结构 |
成员 |
<hierarchy>.defaultmember |
成员 |
元组 |
(<Member>) |
元组 |
成员 |
<tuple>.item(0) |
元组 |
标量 |
<tuple>.value |