Udostępnij za pośrednictwem


IIf (MDX)

Zwraca jedną z dwóch wartości określone przez test logiczny.

IIf(Logical_Expression, Expression1 [HINT <hints>], Expression2 [HINT <hints>]) [HINT <hints>]
<hints> ::= <hint> [<hints>]
<hint> ::= EAGER | STRICT | LAZY

Argumenty

  • Logical_Expression
    Prawidłowe wyrażenie logiczne Multidimensional Expressions (MDX), którego wynikiem jest wartość true lub false.

  • Expression1 WSKAZÓWKA<wskazówki dotyczące serwerów>]
    Prawidłowe wyrażenie Multidimensional Expressions (MDX).WSKAZÓWKA <wskazówki dotyczące serwerów> jest modyfikator opcjonalny, określający, jak i kiedy wyrażenie jest oceniane. Zobacz sekcję Spostrzeżenia, aby uzyskać więcej informacji.

  • Expression2[HINT <hints>]
    Prawidłowe wyrażenie Multidimensional Expressions (MDX).WSKAZÓWKA <wskazówki dotyczące serwerów> jest modyfikator opcjonalny, określający, jak i kiedy wyrażenie jest oceniane. Zobacz sekcję Spostrzeżenia, aby uzyskać więcej informacji.

Remarks

Wyrażenie określone przez wyrażenie logiczne ma wartość false tylko wtedy, gdy wartość wyrażenia jest zero. Ma wartość inną wartość true.

Jeśli wynikiem jest wartość określonego wyrażenia logicznego true, IIf funkcja zwraca pierwsze wyrażenie. W przeciwnym wypadku funkcja zwraca drugie wyrażenie.

Określonego wyrażenia mogą być zwracane wartości lub obiekty MDX.Ponadto określonego wyrażenia nie należy zgodne pod względem typu.

Uwaga

In Microsoft SQL Server 2000, Analysis Services supported only numeric and string return types, and the types of specified expressions had to be the same.These restrictions do not apply to SQL Server Analysis Services.

The IIf funkcja is not recommended for creating a zestaw of members based on search criteria. Zamiast tego należy użyć Filtr funkcja ocenia każdego elementu członkowskiego określonego zestaw względem wyrażenie logicznego i zwraca podzbiór element członkowski.

Uwaga

Jeśli albo wyrażenie ma wartość NULL, zestawie wyników będzie równa NULL, po spełnieniu tego warunku.

Wskazówki dotyczące planu stanowią rozszerzenie do języka MDX do wskazania aparat jak ocenić wyrażeń.

  • EAGER powoduje, że wyrażenie, które ma być oceniane przez całą subspace IIF.

  • STRICT powoduje, że wyrażenie jest sprawdzane tylko w wynikowym subspace zgodnie z wyniki wyrażenie warunku.

  • LAZY powoduje, że wyrażenie, które ma być oceniane w trybie komórek przez komórka.

  • CHCESZ i ściśle wzajemnie się wykluczają one do wskazówkę dotyczącą; mogą być używane w tym samym IIF(,,) za pośrednictwem różnych wyrażeń.

Zobacz Ulepszenia wydajności dla wyrażeń MDX z usług analiz programu SQL Server 2008 Aby uzyskać informacje rozszerzone.

Przykłady

Poniższa kwerenda przedstawia użycie prostego IIF w miarę obliczeniową zwraca jeden z dwóch wartości ciąg różnych miara Internet Sales Amount jest większa lub mniejsza niż 10 000 zł:

WITH MEMBER MEASURES.IIFDEMO AS

IIF([Measures].[Internet Sales Amount]>10000

, "Sales Are High", "Sales Are Low")

SELECT {[Measures].[Internet Sales Amount],MEASURES.IIFDEMO} ON 0,

[Date].[Date].[Date].MEMBERS ON 1

FROM [Adventure Works]

Jest bardzo powszechnym zastosowaniem IIF do obsługi błędów "dzielenie przez zero" w ramach miary obliczeniowe, jak w poniższym przykładzie:

WITH

//Returns 1.#INF when the previous period contains no value

//but the current period does

MEMBER MEASURES.[Previous Period Growth With Errors] AS

([Measures].[Internet Sales Amount]-([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER.PREVMEMBER))

/

([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER.PREVMEMBER)

,FORMAT_STRING='PERCENT'

//Traps division by zero and returns null when the previous period contains

//no value but the current period does

MEMBER MEASURES.[Previous Period Growth] AS

IIF(([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER.PREVMEMBER)=0,

NULL,

([Measures].[Internet Sales Amount]-([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER.PREVMEMBER))

/

([Measures].[Internet Sales Amount], [Date].[Date].CURRENTMEMBER.PREVMEMBER)

),FORMAT_STRING='PERCENT'

SELECT {[Measures].[Internet Sales Amount],MEASURES.[Previous Period Growth With Errors], MEASURES.[Previous Period Growth]} ON 0,

DESCENDANTS(

[Date].[Calendar].[Calendar Year].&[2004],

[Date].[Calendar].[Date])

ON 1

FROM [Adventure Works]

WHERE([Product].[Product Categories].[Subcategory].&[26])

Poniżej przedstawiono przykładowy IIF Zwraca jeden z dwóch zestawów wewnątrz funkcja Generowanie do tworzenia złożonych zestaw krotek, w wierszach:

SELECT {[Measures].[Internet Sales Amount]} ON 0,

//If Internet Sales Amount is zero or null

//returns the current year and the All Customers member

//else returns the current year broken down by Country

GENERATE(

[Date].[Calendar Year].[Calendar Year].MEMBERS

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

{([Date].[Calendar Year].CURRENTMEMBER, [Customer].[Country].[All Customers])}

, {{[Date].[Calendar Year].CURRENTMEMBER} * [Customer].[Country].[Country].MEMBERS}

))

ON 1

FROM [Adventure Works]

WHERE([Product].[Product Categories].[Subcategory].&[26])