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 dasar, atau bahwa tuple untuk sel yang ditentukan mewakili kombinasi anggota yang tidak berlaku untuk kubus.
Note
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 tersebut kosong. Jika tidak, fungsi akan mengembalikan FALSE.
Note
Fungsi IsEmpty tidak dapat menentukan apakah ekspresi anggota mengembalikan nilai null. Untuk menentukan apakah anggota null dikembalikan dari sebuah 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 tidak kosong. Jika kedua operand kosong, operator numerik mengembalikan nilai sel kosong.
Ketika nilai sel kosong adalah operand untuk operator penggabungan string (+), nilai sel kosong diperlakukan sebagai string kosong jika operand lainnya adalah nilai tidak kosong. Jika kedua operan kosong, operator penggabungan 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 apakah tipe data operand lain bersifat numerik atau string, masing-masing. Jika kedua operan kosong, kedua operan diperlakukan sebagai nol.
Saat mengumpulkan nilai numerik, nilai sel kosong dikumpulkan di tempat yang sama dengan nol. Antara nilai sel kosong dan nol, kolase kosong sebelum nol.
Saat mengumpulkan nilai string, nilai sel kosong akan dikumpulkan di tempat yang sama dengan string kosong. Di antara nilai sel kosong dan string kosong, empty kolasi sebelum string kosong.
Menangani Nilai Kosong dalam Pernyataan dan Kubus MDX
Dalam pernyataan Multidimensional Expressions (MDX), Anda dapat mencari nilai kosong lalu melakukan perhitungan tertentu pada sel dengan data valid (yaitu, tidak kosong). Menghilangkan nilai kosong saat melakukan perhitungan bisa penting karena beberapa perhitungan, seperti rata-rata, bisa tidak akurat jika nilai sel kosong dimasukkan.
Jika nilai kosong disimpan dalam data tabel fakta yang mendasarinya, secara default nilai tersebut akan dikonversi menjadi nol saat kubus diproses. Anda dapat menggunakan opsi Null Processing pada sebuah ukuran untuk mengontrol apakah null facts diubah menjadi 0, diubah menjadi nilai kosong, atau bahkan melemparkan error selama pemrosesan. Jika Anda tidak ingin nilai sel kosong muncul di hasil kueri Anda, Anda harus membuat kueri, anggota terhitung, atau pernyataan Skrip MDX yang menghilangkan nilai kosong atau menggantinya dengan nilai lain.
Untuk menghapus baris atau kolom kosong dari kueri, Anda dapat menggunakan pernyataan NON EMPTY sebelum definisi himpunan sumbu. Sebagai contoh, kueri berikut hanya mengembalikan Sepeda Kategori Produk karena itu adalah satu-satunya Kategori yang terjual pada 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])
Secara lebih umum, untuk menghapus tuple kosong dari himpunan Anda dapat menggunakan fungsi NonEmpty. Kueri berikut menunjukkan dua ukuran yang telah dihitung, satu 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 lebih lanjut, lihat NonEmpty (MDX).
Nilai kosong dan operator perbandingan
Ketika nilai kosong hadir dalam data, operator logika dan perbandingan berpotensi mengembalikan hasil ketiga berupa KOSONG, bukan hanya BENAR atau SALAH. Kebutuhan untuk logika bernilai tiga ini adalah sumber dari banyak kesalahan aplikasi. Tabel-tabel ini menguraikan efek dari pengenalan perbandingan nilai kosong.
Tabel ini menunjukkan hasil penerapan operator AND pada dua operan Boolean.
| AND | BENAR | EMPTY | FALSE |
|---|---|---|---|
| BENAR | BENAR | FALSE | FALSE |
| KOSONG | FALSE | EMPTY | FALSE |
| FALSE | FALSE | FALSE | FALSE |
Tabel ini menunjukkan hasil penerapan operator OR pada dua operan Boolean.
| OR | BENAR | FALSE |
|---|---|---|
| BENAR | BENAR | BENAR |
| KOSONG | BENAR | BENAR |
| FALSE | BENAR | FALSE |
Tabel ini menunjukkan bagaimana operator NOT meniadakan atau membalikkan hasil dari operator Boolean.
| Ekspresi Boolean yang diterapkan operator NOT | Mengevaluasi ke |
|---|---|
| BENAR | FALSE |
| EMPTY | EMPTY |
| FALSE | BENAR |