Merhaba,
MSSQL de kullanılan COALESCE ile ISNULL arasındaki fark nedir ?
Normalde ikiside null gelen kayıttan sonra istediğim değerin gelmesini sağlıyor ama teknik fark konusunda bilgisi olan varmı hangisini kullanmak daha iyi olur.
COALESCE ile ISNULL arasında ki farklar neler ?
1
●717
- 24-05-2013, 20:07:35Kimlik doğrulama veya yönetimden onay bekliyor.ISNULL direk null mı değil mi diye bakar ama COALESCE case yaparak kontrol eder.
CASE WHEN ('test' IS NOT NULL) THEN 'NOT NULL' ELSE 'NULL' ENDISNULL ilk parametreye göre tip alır, ama COALESCE case'ten gelen önceliğe göre alır.
Normalde ISNULL(NULL,NULL) sana direk null döndürür ama aynısını COALESCE ile yaparsan hata verir. İlk parametreyi cast yapman gerek. COALESCE((NULL as int), NULL) gibi...
Performans açısından isnull daha hızlıdır.
ISNULL sadece 2 parametre alır.
COALESCE'nin en büyük artısı string join yapması, yani sonucu istediğin karakterler ile birleştirebilirsin. Ben genelde gelen satırlardaki verileri tek satırda ',' ile ayırmam gerektiğinde kullanıyorum.
Sonuç olarak COALESCE ISNULL'ın nested versiyonu.