Udostępnij za pośrednictwem


Praca z wartości puste

Wartość pusta oznacza określonego element członkowski, spójna kolekcja lub komórka jest pusta.Wartość pustej komórka wskazuje, że dane dla określonej komórka nie można odnaleźć w podstawowej tabela fakt, lub że spójna kolekcja dla określonej komórka reprezentuje kombinację członków nie jest stosowana dla moduł.

Ostrzeżenie

Chociaż pustą wartość różni się od wartości zero, pusta wartość zazwyczaj jest traktowana jako zero większość czas.

Poniższa kwerenda przedstawia zachowanie wartości pustych i zerowych:

WITH
//A calculated Product Category that always returns 0
MEMBER [Product].[Category].[All Products].ReturnZero AS 0
//Will return true for any null value
MEMBER MEASURES.ISEMPTYDemo AS ISEMPTY([Measures].[Internet Tax Amount])
//Will true for any null or zero value
//To be clear: the expression 0=null always returns true in MDX
MEMBER MEASURES.IsZero AS [Measures].[Internet Tax Amount]=0
SELECT
{[Measures].[Internet Tax Amount],MEASURES.ISEMPTYDemo,MEASURES.IsZero}
ON COLUMNS,
[Product].[Category].[Category].ALLMEMBERS
ON ROWS
FROM [Adventure Works]
WHERE([Date].[Calendar].[Calendar Year].&[2001])

Puste wartości stosuje się następujące informacje:

  • IsEmpty funkcja zwraca TRUE tylko wtedy, gdy komórka są identyfikowane przez spójna kolekcja określonej w funkcja jest pusta.W przeciwnym wypadku funkcja zwraca FALSE.

    Ostrzeżenie

    IsEmpty funkcja nie można ustalić, czy wyrażenie elementu członkowskiego zwraca wartość null.Aby określić, czy element członkowski null jest zwracane z wyrażenie, użyj jestoperator.

  • Gdy wartość pustej komórka jest argument numeryczny operatorów jednego (+, -, *, /), wartość pustej komórka jest traktowana jako zero, jeśli niepustą wartość drugiego operandu.Jeśli oba operandy są puste, numerycznych operator zwraca wartość pustej komórka.

  • Gdy wartość pustej komórka jest argument ciągu łączenie operator (+), wartość pustej komórka jest traktowana jako pusty ciąg znaków, jeśli niepustą wartość drugiego operandu.Jeśli oba operandy są puste, ciąg łączenie operator zwraca wartość pustej komórka.

  • Gdy wartość pustej komórka jest operand jeden z operatorów porównania (=.<> >=, <=, >, <), wartość pustej komórka jest traktowana jako zero lub ciąg pusty, w zależności od tego, czy typ danych drugiego operandu jest liczbą lub ciągiem, odpowiednio.Jeśli oba operandy są puste, oba operandy są traktowane jako zero.

  • Podczas sortowania wartości liczbowe, wartość pustej komórka posortuje w tym samym miejscu jako zero.Między wartość pustej komórka i zero pusty posortuje przed zero.

  • Podczas sortowania wartości ciągów, wartość pustej komórka posortuje w tym samym miejscu jako pusty ciąg.Między wartość pustej komórka i pusty ciąg pusty posortuje przed ciągiem pustym.

Zajmowanie się wartości puste w instrukcji MDX i moduły

W sprawozdaniu wyrażeń wielowymiarowych (MDX), można szukać wartości puste, a następnie wykonaj obliczenia niektórych komórek z prawidłowym (to znaczy nie pusty) danych.Wyeliminowanie wartości puste, podczas wykonywania obliczeń może być ważne, ponieważ niektóre obliczenia, takie jak średnia, mogą być niedokładne, jeżeli są uwzględniane wartości pustej komórka.

Jeśli puste wartości są przechowywane w sieci podstawowej tabela fakt danych domyślnie zostaną one przekonwertowane do zera podczas przetwarzania moduł.Można użyć Przetwarzania Null opcję miara kontroli czy fakty null są konwertowane na 0, przekonwertowane na wartości pustej lub nawet generuje błąd podczas przetwarzania.Jeśli nie ma wartości pustych komórek znajdujących się w kwerendzie wyniki, należy utworzyć kwerendy, składniki obliczeniowe lub instrukcji MDX Script, które wyeliminować puste wartości lub zastąpić inną wartość.

Aby usunąć puste wiersze lub kolumny z kwerendy, można użyć instrukcja nie jest pusty, przed oś zestaw definicji.Na przykład poniższa kwerenda zwraca tylko rowery kategorii produktu, ponieważ jest to tylko kategoria był sprzedawany w 2001 roku kalendarzowego:

SELECT

{[Measures].[Internet Tax Amount]}

ON COLUMNS,

//Comment out the following line to display all the empty rows for other Categories

NON EMPTY

[Product].[Category].[Category].MEMBERS

ON ROWS

FROM [Adventure Works]

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

Bardziej ogólnie Aby usunąć z zestaw krotek puste można użyć funkcja niepuste.Następująca kwerenda zawiera dwie miara obliczeniowe jeden zlicza liczbę kategorii produktów i drugi pokazuje liczbę kategorii produktów, które mają wartości miara [kwota podatku Internet] i 2001 roku kalendarzowego:

WITH

MEMBER MEASURES.CategoryCount AS

COUNT([Product].[Category].[Category].MEMBERS)

MEMBER MEASURES.NonEmptyCategoryCountFor2001 AS

COUNT(

NONEMPTY(

[Product].[Category].[Category].MEMBERS

,([Date].[Calendar].[Calendar Year].&[2001], [Measures].[Internet Tax Amount])

))

SELECT

{MEASURES.CategoryCount,MEASURES.NonEmptyCategoryCountFor2001 }

ON COLUMNS

FROM [Adventure Works]

Aby uzyskać więcej informacji, zobacz NonEmpty (MDX).

Wartości puste i operatory porównania

Wartości puste są obecne w danych logicznych i operatory porównania może potencjalnie zwraca wartość trzeciego pusty zamiast po prostu PRAWDA lub FAŁSZ.Tę potrzebę wycenione trzy logiki jest źródło wiele błędów aplikacji.Te tabele konspektu wprowadzenia porównania wartości pustej.

W poniższej tabela przedstawiono wyniki zastosowania operator AND w dwa operandy typu wartość logiczna.

ORAZ

Prawda

PUSTE

Fałsz

TRUE

Prawda

Fałsz

Fałsz

EMPTY

Fałsz

PUSTE

Fałsz

FALSE

Fałsz

Fałsz

Fałsz

W poniższej tabela przedstawiono wyniki zastosowania operator OR w dwa operandy typu wartość logiczna.

LUB

Prawda

Fałsz

TRUE

Prawda

Prawda

EMPTY

Prawda

Prawda

FALSE

Prawda

Fałsz

W poniższej tabela pokazano, jak NOT operator neguje lub odwraca wynik operator logiczny.

wyrażenie warunkowedo którego stosowany jest NOT operator

Wynikiem

Prawda

Fałsz

PUSTE

PUSTE

Fałsz

Prawda