Oracle NVL İşlevi

Oracle Nvl Islevi



Boş değer, boş bırakılmış veya atanmış değeri olmayan bir alandır.

NULL değerleri, özellikle harici verileri içe aktarırken veritabanlarında yaygındır. Bu nedenle, bir sütun NULL değerleri önlemek için bir kısıtlama içermedikçe, veritabanı altyapısı muhtemelen eksik bir değer için bir NULL değeri kullanacaktır.







NULL değerleri yaygın olmasına rağmen, veritabanında çalışacak bir değer olmadığı için veritabanı sorunlarına yol açabilir. Bu nedenle, Sorgularınızda NULL değerleri işlemek için eylemler uygulamak iyi bir uygulamadır.



Bu gönderide, belirli bir tablodaki NULL değerleri, veritabanınızda işlem hatalarına neden olma olasılığı daha düşük olan varsayılan bir değer içerecek şekilde nasıl dönüştüreceğimizi öğreneceğiz.



Oracle NVL İşlevi

Belirtildiği gibi, bu işlev NULL değerleri daha anlamlı değerlerle değiştirmemize olanak tanır. İşlev sözdizimi aşağıda verilmiştir:





NVL ( ifade1, ifade2 ) ;

İşlev iki ana argümanı kabul eder:

ifade1 ve ifade2 – bu parametre, NULL değerleri için test edilecek değeri tanımlar. İfade1'in değeri NULL ise, işlev ifade2'nin değerini döndürür.



Her iki ifade de benzer veya farklı veri türlerine sahip olabilir. Karşılık gelen veri türleri farklıysa, veritabanı motoru, veri türleriyle uyumluluğu sağlamak için örtük dönüştürme gerçekleştirebilir. Karşılık gelen veri türlerini dönüştürmek mümkün değilse, veritabanı motoru bir hata verir.

Oracle NVL() İşlev Örneği Kullanım

Aşağıdaki örnek, NVL() işlevinin temel kullanımını göstermektedir:

örnek 1

Aşağıdaki örneği göz önünde bulundurun:

seçme seviye ( 'merhaba' , 'dünya' ) ikiliden;

Önceki örnekte, 'hello' dizesinin NULL değeri olup olmadığını test etmek için NVL() işlevini kullanıyoruz. Sağlanan değer null olmadığı için işlev 'hello' dizesini döndürür.

Örnek 2

Aşağıda gösterilen ikinci örneği ele alalım:

seçme seviye ( boş, 'dünya' ) ikiliden;

Bu durumda, ilk ifade bir NULL değeri olduğundan, sorgu aşağıda gösterildiği gibi ikinci diziyi döndürür:

Örnek 3

Bir veritabanı tablosundaki NULl değerlerini değiştirmek için NVL() işlevini de kullanabiliriz. Aşağıda gösterilen çalışanların tablosunu göz önünde bulundurun:

seçme EMPLOYEES emp'den FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT;

Sonuç tablosu:

Gördüğümüz gibi, commit_pct sütunu NULl değerleri içeriyor. Aşağıdaki örnekte gösterildiği gibi, komisyon_pct sütunundaki NULL değerleri 0 ile değiştirmek için bir sorgu oluşturabiliriz:

seçme FIRST_NAME, LAST_NAME, EMAIL, MAAŞ, nvl ( KOMİSYON_PCT, 0 )
ÇALIŞANLAR emp;

Önceki örnek sorguda, NULL'lar için komisyon_pct sütunundaki değeri test etmek üzere NVL() işlevini kullanıyoruz. NULL değeri varsa 0 döndürürüz. Aksi takdirde orijinal değeri döndürürüz.

Bu, aşağıdaki sonuç tablosunda gösterildiği gibi, sütundaki NULL değerlerini 0 ile değiştirmemize izin vermelidir:

Bunu bir UPDATE deyimi ile kullanabilir veya elde edilen değeri bir tablo görünümünde saklayabiliriz.

Çözüm

Bu öğreticide, NULL değerleri varsayılan değerlerle değiştirmek için Oracle NVL() işlevini nasıl kullanacağınızı öğrendiniz. NVL() işlevinin COALESCE() işlevine çok benzemesine rağmen, NVL() işlevinin yalnızca tek bir değer döndürebileceğini akılda tutmakta fayda var. Aynı zamanda, birleştirme() işlevi birden çok değer döndürebilir.

Coalesce() işlevini kullanmadan ikiden fazla bağımsız değişken alabilen bir işlev arıyorsanız, NVL2() işlevini göz önünde bulundurun.