Поделиться через


/ (деление) (многомерные выражения)

Выполняет арифметическую операцию, которая делит одно число на другое.

Синтаксис

Dividend / Divisor

Параметры

  • Dividend
    Допустимое многомерное выражение, возвращающее числовое значение.

  • Divisor
    Допустимое многомерное выражение, возвращающее числовое значение.

Возвращаемое значение

Значение с типом данных параметра, имеющего более высокий приоритет.

Замечания

Реальное значение, возвращаемое оператором / (Divide), представляет собой частное от деления первого выражения на второе.

Оба выражения должны иметь одинаковый тип данных, или одно из выражений должно допускать неявное преобразование к типу данных другого выражения. Если аргумент Divisor принимает значение NULL, возникает ошибка. Если аргументы Divisor и Dividend принимают значение NULL, оператор возвращает значение NULL.

Примеры

В следующем примере демонстрируется использование этого оператора.

-- This query returns the freight cost per user,
-- for products, averaged by month. 
With Member [Measures].[Freight Per Customer] as
    [Measures].[Internet Freight Cost]
    / 
    [Measures].[Customer Count]


SELECT 
    [Ship Date].[Calendar].[Calendar Year] Members ON 0,
    [Product].[Category].[Category].Members ON 1
FROM
    [Adventure Works]
WHERE
    ([Measures].[Freight Per Customer])

При делении ненулевого значения или значения, отличного от NULL, на нуль или значение NULL будет возвращено значение «бесконечность», которое отображается в результатах запроса как значение «1.#INF». В большинстве случаев следует выполнять проверку на деление на ноль, чтобы избежать этой ситуации. В следующем примере приведена иллюстрация этого:

//Returns 1.#INF when Internet Sales Amount is zero or null

Member [Measures].[Reseller to Internet Ratio] AS

[Measures].[Reseller Sales Amount]

/

[Measures].[Internet Sales Amount]

//Traps the division by zero scenario and returns null instead of 1.#INF

Member [Measures].[Reseller to Internet Ratio With Error Handling] AS

IIF([Measures].[Internet Sales Amount]=0, NULL,

[Measures].[Reseller Sales Amount]

/

[Measures].[Internet Sales Amount])

SELECT

{[Measures].[Reseller to Internet Ratio],[Measures].[Reseller to Internet Ratio With Error Handling]} ON 0,

[Product].[Category].[Category].Members ON 1

FROM

[Adventure Works]

WHERE([Date].[Calendar].[Calendar Year].&[2001])