Yanıtlar:
coalescehem Oracle ve SQL Server desteklenen ve esasen aynı işlevi görür edilir nvlve isnull. (Bazı önemli farklılıklar vardır, coalescerastgele sayıda bağımsız değişken alabilir ve boş olmayan ilk argümanı döndürür. Dönüş türü , en azından SQL Server isnulliçin doğru olmayan ilk argümanın türüyle eşleşir coalesce.)
COALESCE, bunun üzerinde önemli bir avantajı vardır NVL: kısayol değerlendirmesini yaparken, NVLher zaman her iki parametreyi de değerlendirir. Karşılaştırma COALESCE(1,my_expensive_function)ile NVL(1,my_expensive_function).
COALESE()işlev harika ve MSDOC> COALESCE'de okuyabilirsiniz - aynı sözdizimi Oracle'da da çalışır. Veri yerine Boşlara boş dizeleri varsa böyle bir şey gerekebilir: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
Bunun yerine ISNULL()kullanın NVL().
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL / SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
NVL2Aşağıdakilerden başka bir değer döndürmek istiyorsanız aşağıdaki gibi kullanın field_to_check:
NVL2( field_to_check, value_if_NOT_null, value_if_null )
Kullanım: ORACLE / PLSQL: NVL2 FONKSİYONU
Koşulu kullanabilirsiniz if x is not null then.... Bu bir işlev değil. Bir de NVL()fonksiyon var, burada iyi bir kullanım örneği: NVL function ref .
COALESCEANSI'dir, Postgres, MySQL tarafından desteklenir ... Tek uyarı, yerel sözdizimi kadar hızlı çalışmamasıdır.