Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Birden fazla karşılaştırmadan belirli değerleri koşullu olarak döndürmenize izin verir. İki tür vaka cümlesi vardır:
Bir ifadeyi basit ifadeler kümesiyle karşılaştıran ve belirli değerleri döndüren basit bir durum ifadesi.
Belirli değerleri döndürmek için bir Boolean ifadeleri kümesini değerlendiren aranan bir vaka ifadesi.
Syntax
Simple Case Statement
CASE [input_expression]
WHEN when_expression THEN when_true_result_expression
[...n]
[ELSE else_result_expression]
END
Search Case Statement
CASE
WHEN Boolean_expression THEN when_true_result_expression
[...n]
[ELSE else_result_expression]
END
Arguments
input_expression
Çok Boyutlu İfadeler (MDX) ifadesi, skaler bir değere çözümlenir.
when_expression
input_expression'nin değerlendirildiği ve doğru olarak değerlendirildiğinde else_result_expression'nin skaler değerini döndüren belirli bir skaler değerdir.
when_true_result_expression
WHEN maddesi doğru değer olduğunda skaler değer döner.
else_result_expression
Skaler değer, WHEN cümlelerinden hiçbiri doğru olarak değerlendirilmediğinde döner.
Boolean_expression
Skaler değeri değerlendiren bir MDX ifadesi.
Remarks
Eğer ELSE maddesi yoksa ve tüm WHEN cümleleri yanlış olarak değerlendirilirse, sonuç boş bir hücre olur.
Basit Durum İfadesi
MDX, basit bir vaka ifadesini input_expression skaler değere çözümleyerek değerlendirir. Bu skaler değer daha sonra when_expression'nin skaler değeriyle karşılaştırılır. İki skaler değer eşleşirse, CASE ifadesi when_true_expression değerini döndürür. İki skaler değer eşleşmiyorsa, bir sonraki WHEN cümlesi değerlendirilir. Tüm WHEN maddeleri yanlış olarak değerlendirilirse, ELSE maddesinden else_result_expression değeri varsa döner.
Aşağıdaki örnekte, Satıcı Sipariş Sayısı ölçüsü birkaç WHEN maddesine göre değerlendirilir ve her yıl için Satıcı Sipariş Sayısı ölçüsünün değerine dayalı bir sonuç verir. Satıcı Sipariş Sayısı değerleri, bir WHEN maddesinde when_expression belirtilen skaler değerle eşleşmeyen Satıcı Sipariş Sayısı değerleri için, else_result_expression'in skaler değeri döner.
WITH MEMBER [Measures].x AS
CASE [Measures].[Reseller Order Count]
WHEN 0 THEN 'NONE'
WHEN 1 THEN 'SMALL'
WHEN 2 THEN 'SMALL'
WHEN 3 THEN 'MEDIUM'
WHEN 4 THEN 'MEDIUM'
WHEN 5 THEN 'LARGE'
WHEN 6 THEN 'LARGE'
ELSE 'VERY LARGE'
END
SELECT Calendar.[Calendar Year] on 0
, NON EMPTY [Geography].[Postal Code].Members ON 1
FROM [Adventure Works]
WHERE [Measures].x
Aranan Vaka İfadesi
Daha karmaşık değerlendirmeler yapmak için durum ifadesini kullanmak için aranan vaka ifadesini kullanın. Arama ifadesinin bu varyasyonu, bir giriş ifadesinin değer aralığında olup olmadığını değerlendirmenize olanak tanır. MDX, WHEN maddelerini, bu maddelerin CASE ifadesinde yer alma sırasıyla değerlendirir.
Aşağıdaki örnekte, Satıcı Sipariş Sayısı ölçüsü, birkaç WHEN maddesi için belirtilen Boolean_expression karşılaştırıldığında değerlendirilir. Her yıl için Satıcı Sipariş Sayısı ölçütüne göre bir sonuç iade edilir. WHEN maddeleri göründükleri sırayla değerlendirildiğinden, 6'dan büyük tüm değerlere her bir değeri açıkça belirtmeden kolayca "ÇOK BÜYÜK" değeri atanabilir. WHEN maddesinde belirtilmemiş Satıcı Sipariş Sayısı değerleri için, else_result_expression'nin skaler değeri döner.
WITH MEMBER [Measures].x AS
CASE
WHEN [Measures].[Reseller Order Count] > 6 THEN 'VERY LARGE'
WHEN [Measures].[Reseller Order Count] > 4 THEN 'LARGE'
WHEN [Measures].[Reseller Order Count] > 2 THEN 'MEDIUM'
WHEN [Measures].[Reseller Order Count] > 0 THEN 'SMALL'
ELSE "NONE"
END
SELECT Calendar.[Calendar Year] on 0,
NON EMPTY [Geography].[Postal Code].Members on 1
FROM [Adventure Works]
WHERE [Measures].x