SQL Server'ın IsNull () işlevinin Oracle eşdeğeri nedir?


Yanıtlar:


131

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.)


9
+1: COALESCEANSI'dir, Postgres, MySQL tarafından desteklenir ... Tek uyarı, yerel sözdizimi kadar hızlı çalışmamasıdır.
OMG Ponies

17
+1 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).
Jeffrey Kemp

Bu 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".
SherlockSpreadsheets

108

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

2
Soruyu açıkça cevaplar.
Gary Huckabone

31

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


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.