SQL Server IIF ve CASE


87

Yakın zamanda IIFSQL Server 2012'de işlevin kullanılabilirliğini öğrendim CASE. Sorgularımda her zaman iç içe kullanıyorum . İfadenin tam amacını ve sorguda IIFne zaman IIFover CASEStatement kullanmayı tercih etmemiz gerektiğini bilmek istiyorum . CASESorgularımda çoğunlukla iç içe kullanıyorum .

Tüm girdiler için teşekkürler.


9
IIF, basit bir CASE ifadesinin kısaltmasıdır. Sorgu optimizasyonu ve yürütmesi için bir vaka bildirimine bile çevrildi: technet.microsoft.com/en-us/library/hh213574.aspx
Sam DeHaan

Kısaltmanın standardın bir parçası olmaması utanç verici (bugünlerde ne var? ANSISQL?), Çünkü okunması çok daha kolay. Ama sonra T-SQL her zaman biraz ... "sözlü" olmuştur.
Neil Barnwell

Yanıtlar:


144

IIFile aynıdır CASE WHEN <Condition> THEN <true part> ELSE <false part> END. Sorgu planı aynı olacaktır. Belki de başlangıçta uygulandığı şekliyle "sözdizimsel şeker" dir.

CASE, tüm SQL platformlarında taşınabilirken IIF, SQL SERVER 2012+ özeldir.


6
Muhtemelen Access / VB geliştiricilerinin sözdizimini hatırlamasını kolaylaştırmak için.
ilginç-isim-burada

20

IIF, standart olmayan bir T-SQL işlevidir. SQL SUNUCUSU 2012'ye eklendi, böylece Access IIF'leri önceden CASE'e yeniden düzenlemeden SQL Server'a geçebildi. Access db tamamen SQL Server'a geçirildikten sonra yeniden düzenleme yapabilirsiniz.


13
Sebebini beğendim. Bazı belgelere atıfta bulunarak destekleyebilir misiniz?
Peter Ivan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.