Funkcja Oracle NVL

Funkcja Oracle NVL

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

Wartości zerowe są powszechne w bazach danych, szczególnie przy importowaniu danych zewnętrznych. Dlatego, chyba że kolumna nie zawiera ograniczenia zapobiegania wartościom zerowym, silnik bazy danych prawdopodobnie użyje wartości zerowej dla brakującej wartości.

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

W tym poście dowiemy się, jak konwertować wartości zerowe w danej tabeli, aby zawierać wartość domyślną, która jest mniej prawdopodobna, że ​​powoduje błędy pracy w Twojej bazie danych.

Funkcja Oracle NVL

Jak wspomniano, ta funkcja pozwala nam zastąpić wartości zerowe bardziej znaczącymi wartościami. Składnia funkcji znajduje się poniżej:

NVL (expr1, expr2);

Funkcja akceptuje dwa główne argumenty:

expr1 i expr2 - Ten parametr określa wartość do testowania dla wartości zerowych. Jeśli wartość expr1 jest zerowa, funkcja zwróci wartość expr2.

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

Oracle nvl () Funkcja Przykładowy użycie

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

Przykład 1

Rozważ następujący przykład:

Wybierz NVL („Hello”, „World”) z Dual;

W poprzednim przykładzie używamy funkcji NVL (), aby sprawdzić, czy ciąg „Hello” jest wartością zerową. Ponieważ podana wartość nie jest zerowa, funkcja zwróci ciąg „Hello”.

Przykład 2

Rozważ drugi przykład pokazany poniżej:

Wybierz NVL (NULL, „World”) z Dual;

W takim przypadku, ponieważ pierwsze wyrażenie jest wartością zerową, 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 zerowych w tabeli bazy danych. Rozważ tabelę pracowników pokazaną poniżej:

Wybierz nazwę First_name, Last_name, e -mail, pensja, prowizja_pct od pracowników EMP;

Wynikowy stół:

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

Wybierz nazwę First_name, Last_name, e -mail, wynagrodzenie, NVL (Commission_PCT, 0)
od pracowników EMP;

W poprzednim przykładowym zapytaniu używamy funkcji NVL () do przetestowania wartości w kolumnie Commission_Pct dla zerowych. Jeśli istnieje wartość zerowa, zwracamy 0. W przeciwnym razie zwracamy pierwotną wartość.

Powinno to pozwolić nam na zastąpienie wartości zerowych w kolumnie 0, jak pokazano w poniższej tabeli:

Możemy to użyć z instrukcją aktualizacji lub przechowywać wynikową wartość w widoku tabeli.

Wniosek

W tym samouczku nauczyłeś się, jak korzystać z funkcji Oracle nvl (), aby zastąpić wartości zerowe wartościami domyślnymi. Dobrze należy pamiętać, że chociaż funkcja NVL () bardzo przypomina funkcję Coalesce (), funkcja NVL () może zwrócić tylko jedną wartość. Jednocześnie funkcja Coalesce () może zwrócić wiele wartości.

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