CoalesceEmpty (MDX)

Преобразует пустое значение ячейки в заданное непустое значение, которое может быть числом или строкой.

Syntax

  
Numeric syntax  
CoalesceEmpty( Numeric_Expression1 [ ,Numeric_Expression2,...n] )  
  
String syntax  
CoalesceEmpty(String_Expression1 [ ,String_Expression2,...n] )  

Arguments

Numeric_Expression1
Допустимое числовое выражение, которое обычно является многомерным выражением (MDX) координат ячеек, возвращающих число.

Numeric_Expression2
Допустимое числовое выражение, которое обычно является заданным числовым значением.

String_Expression1
Допустимое строковое выражение, которое обычно является многомерным выражением (MDX) координат ячеек и возвращает строку.

String_Expression2
Допустимое строковое выражение, которое обычно является заданным значением строки, заменяемым NULL, возвращаемым первым строковым выражением.

Remarks

Если задано одно или несколько числовых выражений, функция CoalesceEmpty возвращает числовое значение первого числового выражения (слева направо), которое можно разрешить в непустое значение. Если ни одно из указанных числовых выражений не может быть разрешено в непустое значение, функция возвращает пустое значение ячейки. Обычно значение второго числового выражения — это числовое значение, которое заменяется NULL, возвращаемым первым числовым выражением.

Если задано одно или несколько строковых выражений, функция возвращает строковое значение первого строкового выражения (слева направо), которое можно разрешить в непустое значение. Если ни одно из указанных строковых выражений не может быть разрешено в непустое значение, функция возвращает пустое значение ячейки. Обычно значение второго строкового выражения — это значение строки, которое подставляется на NULL, возвращаемое первым строковым выражением.

Функция CoalesceEmpty может принимать только значения одного типа. Другими словами, все заданные выражения значений должны оцениваться только по числовым типам данных или пустому значению ячейки, либо все указанные выражения значения должны оцениваться как строковые типы данных или по пустому значению ячейки. Один вызов этой функции не может включать одновременно числовые и строковые выражения.

Для получения дополнительной информации о пустых ячейках см. документацию OLE DB.

Пример

В следующем примере используется запрос к кубу Adventure Works. Этот пример возвращает количество заказа каждого продукта и процент количества заказов по категориям. Функция CoalesceEmpty гарантирует, что нулевые значения представляются как ноль (0) при форматировании вычисленных элементов.

WITH   
   MEMBER [Measures].[Order Percent by Category] AS  
   CoalesceEmpty(   
      ([Product].[Product Categories].CurrentMember,  
        Measures.[Order Quantity]) /   
          (  
           Ancestor  
           ( [Product].[Product Categories].CurrentMember,   
             [Product].[Product Categories].[Category]  
           ), Measures.[Order Quantity]  
       ), 0  
   ), FORMAT_STRING='Percent'  
SELECT   
   {Measures.[Order Quantity],  
      [Measures].[Order Percent by Category]} ON COLUMNS,  
{[Product].[Product].Members} ON ROWS  
FROM [Adventure Works]  
WHERE {[Date].[Calendar Year].[Calendar Year].&[2003]}