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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
SQL Server'da Boolean ifadesinin doğru mu yanlış mı değerlendirildiğine bağlı olarak iki değerden birini döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
IIF( boolean_expression, true_value, false_value )
Arguments
boolean_expression
Geçerli bir Boolean ifadesi.
Eğer bu argüman bir boolean ifadesi değilse, sözdizimi hatası ortaya çıkar.
true_value
Eğer boolean_expression doğru olarak değerlendirilirse geri dönecek değer.
false_value
Eğer boolean_expression yanlış olarak değerlendirilirse iade edilecek değer.
Dönüş Türleri
true_value ve false_value türlerinden en yüksek önceliğe sahip veri tipini döndürür. Daha fazla bilgi için bkz. Veri Türü Önceliği (Transact-SQL).
Açıklamalar
IIF, bir CASE ifadesi yazmanın kısaltma yoludur. İlk argüman olarak geçilen Boolean ifadesini değerlendirir ve ardından değerlendirme sonucuna göre diğer iki argümandan birini geri getirir. Yani, Boolean ifadesi doğruysa true_value döner, Boolean ifadesi yanlış veya bilinmiyorsa false_value döner. true_value ve false_value her türden olabilir. Boolean ifadeleri, null işleme ve dönüş tipleri için CASE ifadesine uygulanan aynı kurallar IIF için de geçerlidir. Daha fazla bilgi için bkz. CASE (Transact-SQL).
IIF'nin CASE'e çevrilmesi, bu fonksiyonun davranışının diğer yönlerini de etkiler. CASE ifadeleri yalnızca 10 seviyesine kadar iç içe alınabildiğinden, IIF ifadeleri de yalnızca maksimum 10 seviyesine kadar iç içe alınabilir. Ayrıca, IIF diğer sunuculara uzaktan bağlanmış bir CASE ifadesi olarak, uzaktan CASE ifadesinin tüm davranışlarını barındıran anlamsal eşdeğer bir CASE ifadesi olarak yönlendirilir.
IIF, Azure Synapse Analytics'te özel SQL havuzlarında desteklenmemektedir.
Örnekler
A. Basit IIF örneği
DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );
Sonuç kümesi aşağıdadır.
Result
--------
TRUE
B. NULL sabitli IIF
SELECT [Result] = IIF( 45 > 30, NULL, NULL );
Bu ifadenin sonucu bir hatadır.
C. NULL parametrelerle IIF
DECLARE @P INT = NULL, @S INT = NULL;
SELECT [Result] = IIF( 45 > 30, @P, @S );
Sonuç kümesi aşağıdadır.
Result
--------
NULL