Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nilai kosong menunjukkan bahwa anggota, tuple, atau sel tertentu kosong. Nilai sel kosong menunjukkan bahwa data untuk sel yang ditentukan tidak dapat ditemukan dalam tabel fakta yang mendasar, atau bahwa tuple untuk sel yang ditentukan mewakili kombinasi anggota yang tidak berlaku untuk kubus.
Catatan
Meskipun nilai kosong berbeda dari nilai nol, nilai kosong biasanya diperlakukan sebagai nol sebagian besar waktu.
Kueri berikut mengilustrasikan perilaku nilai kosong dan nol:
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])
Informasi berikut berlaku untuk nilai kosong:
Fungsi IsEmpty mengembalikan TRUE jika dan hanya jika sel yang diidentifikasi oleh tuple yang ditentukan dalam fungsi kosong. Jika tidak, fungsi mengembalikan FALSE.
Catatan
Fungsi IsEmpty tidak dapat menentukan apakah ekspresi anggota mengembalikan nilai null. Untuk menentukan apakah anggota null dikembalikan dari ekspresi, gunakan operator IS .
Ketika nilai sel kosong adalah operand untuk salah satu operator numerik (+, -, *, /), nilai sel kosong diperlakukan sebagai nol jika operand lainnya adalah nilai yang tidak kosong. Jika kedua operand kosong, operator numerik mengembalikan nilai sel kosong.
Ketika nilai sel kosong adalah operand untuk operator perangkaian string (+), nilai sel kosong diperlakukan sebagai string kosong jika operand lain adalah nilai yang tidak kosong. Jika kedua operand kosong, operator penggandaan string mengembalikan nilai sel kosong.
Ketika nilai sel kosong adalah operand untuk salah satu operator perbandingan (=. <>, >=, <=, >, ), <nilai sel kosong diperlakukan sebagai nol atau string kosong, tergantung pada apakah jenis data operand lain adalah numerik atau string, masing-masing. Jika kedua operan kosong, kedua operan diperlakukan sebagai nol.
Saat menyusun nilai numerik, nilai sel kosong berkolase di tempat yang sama dengan nol. Antara nilai sel kosong dan nol, kolaate kosong sebelum nol.
Saat menyusun nilai string, nilai sel kosong berkolase di tempat yang sama dengan string kosong. Antara nilai sel kosong dan string kosong, kosong menyusun sebelum string kosong.
Menangani Nilai Kosong dalam Pernyataan dan Kubus MDX
Dalam pernyataan Ekspresi Multidansa (MDX), Anda dapat mencari nilai kosong lalu melakukan perhitungan tertentu pada sel dengan data yang valid (yaitu, tidak kosong). Menghilangkan nilai kosong saat melakukan penghitungan bisa penting karena perhitungan tertentu, seperti rata-rata, dapat tidak akurat jika nilai sel kosong disertakan.
Jika nilai kosong disimpan dalam data tabel fakta dasar Anda, secara default nilai tersebut akan dikonversi menjadi nol saat kubus diproses. Anda dapat menggunakan opsi Pemrosesan Null pada ukuran untuk mengontrol apakah fakta null dikonversi menjadi 0, dikonversi ke nilai kosong, atau bahkan melempar kesalahan selama pemrosesan. Jika Anda tidak ingin nilai sel kosong muncul di hasil kueri, Anda harus membuat kueri, anggota terhitung, atau pernyataan Skrip MDX yang menghilangkan nilai kosong atau menggantinya dengan beberapa nilai lainnya.
Untuk menghapus baris atau kolom kosong dari kueri, Anda bisa menggunakan pernyataan NON KOSONG sebelum definisi set sumbu. Misalnya, kueri berikut hanya mengembalikan Sepeda Kategori Produk karena itu adalah satu-satunya Kategori yang dijual dalam Tahun Kalender 2001:
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])
Lebih umumnya, untuk menghapus tuple kosong dari set, Anda dapat menggunakan fungsi NonEmpty. Kueri berikut menunjukkan dua pengukuran terhitung, salah satunya menghitung jumlah Kategori Produk dan yang kedua menunjukkan jumlah Kategori Produk yang memiliki nilai untuk ukuran [Jumlah Pajak Internet] dan Tahun Kalender 2001:
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]
Untuk informasi selengkapnya, lihat NonEmpty (MDX).
Nilai Kosong dan Operator Perbandingan
Ketika nilai kosong ada dalam data, operator logis dan perbandingan berpotensi mengembalikan hasil ketiga DARI EMPTY, bukan hanya TRUE atau FALSE. Kebutuhan untuk logika bernilai tiga ini adalah sumber dari banyak kesalahan aplikasi. Tabel ini menguraikan efek memperkenalkan perbandingan nilai kosong.
Tabel ini memperlihatkan hasil penerapan operator AND ke dua operand Boolean.
| AND | BENAR | KOSONG | SALAH |
|---|---|---|---|
| BENAR | BENAR | SALAH | SALAH |
| KOSONG | SALAH | KOSONG | SALAH |
| SALAH | SALAH | SALAH | SALAH |
Tabel ini memperlihatkan hasil penerapan operator OR ke dua operand Boolean.
| ATAU | BENAR | SALAH |
|---|---|---|
| BENAR | BENAR | BENAR |
| KOSONG | BENAR | BENAR |
| SALAH | BENAR | SALAH |
Tabel ini memperlihatkan bagaimana operator NOT meniadakan, atau membalikkan, hasil operator Boolean.
| Ekspresi Boolean tempat operator NOT diterapkan | Mengevaluasi ke |
|---|---|
| BENAR | SALAH |
| KOSONG | KOSONG |
| SALAH | BENAR |
Lihat Juga
Referensi Fungsi MDX (MDX)
Referensi Operator MDX (MDX)
Ekspresi (MDX)