SORU
13 EYLÜL 2011, Salı


ISNULL vs kullanarak belirli bir condtion kontrol etmek için BİRLEŞİM?

Birden çok parametre BİRLEŞİM geçirilen, ama istediğiniz zaman, bu özel bir durum ile ilgili olduğunu biliyorum eğer öyle olsaydı zaten bir ifadeyi kontrol, varsayılan kullanıyor musunuz ya da ISNULL yerine kullanmak için iyi bir uygulama mı?

İkisi arasında herhangi bir performans artışı var mı?

CEVAP
29 ŞUBAT 2012, ÇARŞAMBA


This problem reported on MIcrosoft Connect COALESCE ISNULL arasında bazı farklılıklar ortaya koymaktadır:

bizim işleme erken bir parçası CASE WHEN expression1 IS NOT NULL THEN expression1 ELSE expression2 END COALESCE( expression1, expression2 ) yeniden yazar. [Bu örnek]:

COALESCE ( ( SELECT Nullable
               FROM Demo
              WHERE SomeCol = 1 ), 1 )

biz oluşturun

SELECT CASE
          WHEN (SELECT Nullable FROM Demo WHERE SomeCol = 1) IS NOT NULL
          THEN (SELECT Nullable FROM Demo WHERE SomeCol = 1)
          ELSE 1
       END

Daha sonra sorgu işleme aşamaları iki alt alt sorgu iki kez yaparlar, yani aslında aynı ifade vardı, anlamıyor...

Bunu önermekten nefret ederim ama bir geçici çözüm, ikinci sorgu yinelenen olmadığından BİRLEŞİM ISNULL değiştirmek için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kassem G

    Kassem G

    25 EKİM 2006
  • mist64

    mist64

    30 Mayıs 2006
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007