表达式是标识符、值和运算符的组合,可以被评估以得到结果。 数据可以在访问或更改数据时用于多个不同地点。 例如,你可以将表达式作为查询数据的一部分,或作为搜索条件来寻找满足一组条件的数据。
简单表达式与复杂表达式
MDX中的表达式可以是简单也可以复杂:
一个简单的表达式可以是以下表达式之一:
恒定
常数是表示MDX中单一特定值的符号。 字符串、数字和日期值可以被渲染为常量。 与数字常数不同,字符串和日期常数必须用单引号(')字符分隔。
标量函数
标量函数在MDX评估语境中返回单个值。 这一区别对于理解MDX如何解析标量函数非常重要,因为大多数MDX表达式、语句和脚本的评估不是针对单个数据元素,而是对一组数据元素(如单元格或成员)进行迭代计算。 然而,在评估标量函数时,该函数通常只是在审查单个数据元素。
对象标识符
MDX之所以面向对象,是因为数据具有多维度的特性。 对象标识符在MDX中被视为简单的表达式。 有关标识符的更多信息,请参见标识符(MDX)。
可以通过这些实体的组合和算符构建复杂的表达式。
表达式结果
对于由单一常数、变量、标量函数或列名组成的简单表达式,表达式的数据类型、排序、精度、尺度和值即为参考元素的数据类型、排序、精度、尺度和值。 由于MDX仅直接支持OLE VARIANT数据类型,处理简单表达式时不应出现强制现象。
对于复杂表达式,使用两个或多个具有不同数据类型的简单表达式时,可能发生强制。
表达式示例
以下查询展示了定义为简单表达式的计算度量示例:
WITH
MEMBER MEASURES.CONSTANTVALUE AS 1
MEMBER MEASURES.SCALARFUNCTION AS [Date].[Calendar Year].CURRENTMEMBER.NAME
MEMBER MEASURES.OBJECTIDENTIFIER AS [Measures].[Internet Sales Amount]
SELECT
{ MEASURES.CONSTANTVALUE, MEASURES.SCALARFUNCTION, MEASURES.OBJECTIDENTIFIER } ON 0,
[Date].[Calendar Year].MEMBERS ON 1
FROM [Adventure Works]
表达式也可以是计算,例如 [Measures].[Discount Amount] * 1.5。 以下示例演示了在MDX SELECT语句中定义成员的计算方法:
WITH
MEMBER [Measures].[Special Discount] AS
[Measures].[Discount Amount] * 1.5
SELECT
[Measures].[Special Discount] on COLUMNS,
NON EMPTY [Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
WHERE [Product].[Category].[Bikes]
本节内容
| Topic | Description |
|---|---|
| 使用立方体和子立方表达式 | 定义立方体和子立方体表达式。 |
| 使用维表达式 | 定义维度表达式。 |
| 使用成员表达式 | 定义成员表达。 |
| 使用元组表达式 | 定义元组表达式。 |
| 使用集合表达式 | 定义集合表达式。 |
| 使用标量表达式 | 定义标量表达式。 |
| 与空值共事 | 描述什么是空值以及该值如何处理。 |