Funkcja Oracle NVL

Funkcja Oracle Nvl



Wartość pusta to pole, które zostało pozostawione puste lub nie ma przypisanej wartości.

Wartości NULL są powszechne w bazach danych, zwłaszcza podczas importowania danych zewnętrznych. Dlatego jeśli kolumna nie zawiera ograniczenia uniemożliwiającego wprowadzenie wartości NULL, aparat bazy danych prawdopodobnie użyje wartości NULL jako brakującej wartości.







Chociaż wartości NULL są powszechne, mogą prowadzić do problemów z bazą danych, ponieważ baza danych nie ma żadnej wartości do pracy. Dlatego dobrą praktyką jest stosowanie akcji do obsługi wartości NULL w zapytaniach.



W tym poście dowiemy się, jak przekonwertować wartości NULL w danej tabeli, aby zawierała wartość domyślną, która z mniejszym prawdopodobieństwem spowoduje błędy operacji w Twojej bazie danych.



Funkcja Oracle NVL

Jak wspomniano, ta funkcja pozwala nam zastępować wartości NULL bardziej znaczącymi wartościami. Poniżej przedstawiono składnię funkcji:





NVL ( wyr1, wyr2 ) ;

Funkcja przyjmuje dwa główne argumenty:

wyr1 i wyr2 – ten parametr określa wartość, która ma być testowana pod kątem wartości NULL. Jeśli wartość expr1 jest równa NULL, funkcja zwróci wartość expr2.



Oba wyrażenia mogą mieć podobne lub różne typy danych. Jeśli odpowiednie typy danych różnią się, aparat bazy danych może przeprowadzić niejawną konwersję, aby zapewnić zgodność z typami danych. Jeśli nie można przekonwertować odpowiednich typów danych, silnik bazy danych zgłosi błąd.

Przykład użycia funkcji Oracle NVL().

Poniższy przykład ilustruje podstawowe użycie funkcji NVL():

Przykład 1

Rozważ następujący przykład:

wybierać poziom ( 'Witam' , 'świat' ) z podwójnego;

W poprzednim przykładzie używamy funkcji NVL() do sprawdzenia, czy łańcuch „hello” ma wartość NULL. Ponieważ podana wartość nie jest pusta, funkcja zwróci ciąg „hello”.

Przykład 2

Rozważ drugi przykład pokazany poniżej:

wybierać poziom ( zero, 'świat' ) z podwójnego;

W takim przypadku, ponieważ pierwsze wyrażenie ma wartość NULL, zapytanie zwróci drugi ciąg, jak pokazano poniżej:

Przykład 3

Możemy również użyć funkcji NVL() do zastąpienia wartości NULl w tabeli bazy danych. Rozważ tabelę pracowników pokazaną poniżej:

wybierać FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT od EMPLOYEES emp;

Wynikowa tabela:

Jak widzimy, kolumna Commission_pct zawiera wartości NULl. Możemy utworzyć zapytanie, aby zastąpić wartości NULL z kolumny Commission_pct wartością 0, jak pokazano w poniższym przykładzie:

wybierać IMIĘ, NAZWISKO, E-MAIL, WYNAGRODZENIE, nvl ( PROWIZJA_PCT, 0 )
od PRACOWNIKÓW emp;

W poprzednim przykładowym zapytaniu używamy funkcji NVL() do sprawdzenia wartości w kolumnie Commission_pct pod kątem wartości NULL. Jeśli istnieje wartość NULL, zwracamy 0. W przeciwnym razie zwracamy pierwotną wartość.

To powinno umożliwić nam zastąpienie wartości NULL w kolumnie wartością 0, jak pokazano w poniższej tabeli wynikowej:

Możemy użyć tego z instrukcją UPDATE lub zapisać wynikową wartość w widoku tabeli.

Wniosek

W tym samouczku nauczyłeś się, jak używać funkcji Oracle NVL() do zastępowania wartości NULL wartościami domyślnymi. Warto pamiętać, że chociaż funkcja NVL() bardzo przypomina funkcję COALESCE(), funkcja NVL() może zwrócić tylko jedną wartość. W tym samym czasie funkcja koalescencji() może zwracać wiele wartości.

Jeśli szukasz funkcji, która może przyjmować więcej niż dwa argumenty bez użycia funkcji koalescencji(), rozważ funkcję NVL2().