MDX NON EMPTY 关键字将写入所有值为非 NULL 的指定成员。例如,在显示不良绩效产品时,您可能会发现少数产品的值为 NULL。为了删除 NULL 值,我们可以使用此 NON EMPTY 关键字。请参考下表以了解 NON EMPTY 的输出。
| 度量 1 值 | 度量 2 值 | 结果 |
|---|---|---|
| 空字符 | 空字符 | NON Empty 关键字将不显示此记录 |
| 空字符 | 非 NULL | NON Empty 将显示此记录 |
| 非 NULL | 空字符 | NON Empty 将显示此记录 |
| 非 NULL | 非 NULL | NON Empty 将显示此记录 |
在本文中,我们将通过示例向您展示如何在多维表达式或 MDX 查询中使用 NON EMPTY 关键字。为此,我们将使用以下显示数据。

MDX NON Empty 示例
在此示例中,我们将使用 Non Empty 来查找每个日历年且销售额非 NULL 的经销商销售额。
SELECT [Measures].[Reseller Sales Amount] ON COLUMNS, NON EMPTY [Date].[Calendar].[Calendar Year].ALLMEMBERS ON ROWS FROM [Adventure Works]
在上面的 MDX 查询中,我们在列上使用了 [Reseller Sales amount]
[Measures].[Reseller Sales Amount] ON COLUMNS
下面代码中的 MDX Non Empty 关键字将查找经销商销售额非 NULL 的日历年,并将其作为输出显示。
NON EMPTY [Date].[Calendar].[Calendar Year].ALLMEMBERS ON ROWS
众所周知,从 2005 年到 2009 年以及 2014 年都没有销售额,这就是为什么 Non Empty 显示 2010 年、2011 年、2012 年和 2013 年的经销商销售额。
Non Empty 示例 2
在此示例中,我们将使用多个度量来更仔细地向您展示 Non Empty 的行为。
SELECT
{ [Measures].[Reseller Sales Amount],
[Measures].[Internet Sales Amount]
} ON COLUMNS,
NON EMPTY [Date].[Calendar].[Calendar Year].ALLMEMBERS ON ROWS
FROM [Adventure Works]

在上面的 MDX 查询中,我们在列上使用了 [Reseller Sales amount] 和 [Internet Sales amount]
{
[Measures].[Reseller Sales Amount],
[Measures].[Internet Sales Amount]
} ON COLUMNS
下面代码中的 MDX Non Empty 关键字将查找 [Reseller Sales amount] 和 [Internet Sales amount] 值非 NULL 的日历年。它将显示结果,如我们在上表中解释的那样。
NON EMPTY [Date].[Calendar].[Calendar Year].ALLMEMBERS ON ROWS
众所周知,从 2005 年到 2009 年没有经销商销售额和互联网销售额。这就是为什么 Non Empty 显示 2010 年、2011 年、2012 年、2013 年和 2014 年的经销商销售额。
