表达式 (MDX)

表达式是标识符、值和运算符的组合,Microsoft SQL Server Analysis Services 可以通过计算表达式来获得结果。访问或更改数据时,可在多个不同的位置使用数据。例如,可以将表达式用作查询要检索的数据的一部分,或用作查找满足一组条件的数据的搜索条件。

简单表达式和复杂表达式

在 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]

本节涉及的主题

主题

说明

使用多维数据集表达式和子多维数据集表达式

定义多维数据集和子多维数据集表达式。

使用维度表达式

定义维度表达式。

使用成员表达式

定义成员表达式。

使用元组表达式

定义元组表达式。

使用集表达式

定义集表达式。

使用标量表达式

定义标量表达式。

使用空值

说明什么是空值以及如何处理此类值。