Share via


CASE (Azure Stream Analytics)

Koşulların listesini değerlendirir ve birden çok olası sonuç ifadelerinden birini döndürür.

CASE ifadesinin iki biçimi vardır:

  • Basit CASE ifadesi, sonucu belirlemek için bir ifadeyi bir dizi basit ifadeyle karşılaştırır.

  • Arama yapılan CASE ifadesi, sonucu belirlemek için bir dizi Boole ifadesini değerlendirir.

Her iki biçim için de ELSE bağımsız değişkeni gerekir.

CASE, geçerli bir ifadeye izin veren herhangi bir deyimde veya yan tümcede kullanılabilir. Örneğin, SELECT gibi ifadelerde VE WHERE ve HAVING gibi in yan tümcelerinde CASE kullanabilirsiniz.

Syntax

Basit CASE ifadesi:

CASE input_expression
     WHEN when_expression THEN result_expression [ ...n ] 
     ELSE else_result_expression
END  

Aranan CASE ifadesi:

CASE  
     WHEN Boolean_expression THEN result_expression [ ...n ]
     ELSE else_result_expression  
END  

Bağımsız değişkenler

Input_expression

İfade, basit CASE biçimi kullanıldığında değerlendirilir. Değerlendirilen değer , when_expression karşılaştırılır.

NE ZAMAN when_expression

Basit CASE biçimi kullanılırken input_expression karşılaştırıldığı ifadedir. when_expressions türlerinin eşleşmesi şart değildir.

NE ZAMAN boolean_expression

Aranan CASE biçimi kullanılırken boole ifadesi değerlendirilir mi? Bu ifade true olarak değerlendirilirse ilgili result_expression döndürülür.

SONRA result_expression

input_expression when_expression eşit olduğunda (basit CASE biçiminde) veya boolean_expression true olarak değerlendirildiğinde (aranan BÜYÜK/KÜÇÜK HARF biçiminde) ifade döndürülür mü?

ELSE else_result_expression

Koşulların hiçbiri DOĞRU olarak değerlendirilmediyse ifade döndürülür.

Dönüş türü

result_expression veelse_result_expression tür kümesinden en yüksek öncelik türüdür.

Örnekler

Select'i basit bir CASE ifadesiyle kullanma:

  SELECT
    CASE vehicleType
      WHEN 'S' THEN 'Sedan'
      WHEN 'T' THEN 'Truck'
      WHEN 'V' THEN 'Van'
      ELSE NULL
    END as vehicleTypeName
  FROM vehicles

Aranan CASE ifadesiyle seçmeyi kullanma:

  SELECT
    CASE
      WHEN temperature < 60 THEN 'Alert'
      ELSE 'OK'
    END as currentStatus
  FROM sensor