Welcome to Our Website

funkcja Oracle COALESCE

Podsumowanie: w tym samouczku dowiesz się, jak używać funkcji Oracle COALESCE() do zwracania pierwszych Nie-null argumentów na liście.

Wprowadzenie do funkcji Oracle COALESCE ()

funkcja OracleCOALESCE() akceptuje listę argumentów i zwraca pierwszy, który jest ewaluowany do wartości innej niż null.,

poniżej przedstawiono składnię Oracle COALESCE() funkcja:

w tej składni COALESCE() funkcja zwraca pierwsze wyrażenie inne niż null na liście. Wymaga co najmniej dwóch wyrażeń. W przypadku, gdy wszystkie wyrażenia mają wartość null, funkcja zwraca null.,

następujący przykład zwraca jeden, ponieważ jest to pierwszy argument inny niż null:

 RESULT---------- 1

następujący przykład zwraca null, ponieważ wszystkie argumenty są null:

Typ zwracania

Jeśli wszystkie argumenty są argumenty mają ten sam typ danych, funkcja COALESCE() zwraca wartość tego typu danych.

Jeśli argumenty mają różne typy danych, funkcjaCOALESCE() domyślnie konwertuje wszystkie argumenty na typ danych pierwszego argumentu innego niż null., Jeśli konwersja nie powiedzie się, Oracle wyświetli błąd.

poniższy przykład zwraca wartość z typem znakowym, ponieważ wszystkie argumenty są znakami.,

podobnie następujący przykład zwraca wartość z typem liczbowym:

 RESULT---------- 1

jednak poniższy przykład używa argumentów różnych typów dla COALESCE() funkcja:

Oracle wydało następujący błąd:

ponieważ funkcja COALESCE() próbowała przekonwertować typ znakowy trzeciego argumentu na liczbowy typ drugiego argumentu, który spowodował błąd.,

ocena zwarcia

funkcjaCOALESCE() wykorzystuje ocenę zwarcia. Oznacza to, że funkcja przestaje Oceniać Pozostałe wyrażenia, gdy znajdzie pierwsze, które jest ewaluowane do wartości innej niż null.

rozważ następujący przykład:

w tym przykładzie funkcjaCOALESCE() oceniała tylko pierwsze wyrażenie, ponieważ wynik pierwszego wyrażenia wynosił dwa (1+1). Nie oceniła drugiego wyrażenia (1/0). Gdyby tak się stało, Oracle wydałoby podział przez zero błędu.,

przykład Oracle COALESCE ()

ustawmy przykładową tabelę do testowania.

Załóżmy, że musisz nagrywać kontakty awaryjne pracowników z różnymi numerami telefonów: Telefon służbowy, telefon domowy i telefon komórkowy. Aby to zrobić, należy utworzyć nową tabelę o nazwie emergency_contacts w następujący sposób:

poniższe instrukcje wstawiają niektóre kontakty alarmowe do tabeli:

niektóre kontakty mają tylko Telefon służbowy, podczas gdy inne mogą mieć telefon domowy i komórkowy lub nie mają żadnego numeru telefonu.,

poniższe zapytanie pobiera pracowników i ich kontakty alarmowe z numerami telefonów:

w tym przykładzie użyliśmy funkcji COALESCE(), aby wybrać telefon domowy, służbowy lub komórkowy, jeśli każdy z nich jest dostępny. W przypadku braku dostępnych numerów telefonicznych zwróciliśmy N/A literalny ciąg znaków, który oznacza niedostępny.,

poniżej przedstawiono wynik zapytania:

Oracle COALESCE() i wyrażenie CASE

Możesz użyć COALESCE()funkcja zamiast dłuższego wyrażenia CASE jeśli chodzi o testowanie null w wielu wyrażeniach. Funkcja COALESCE() jest bardziej zwięzła niż wyrażenie CASE zawierające wartości null.,

If you check for NULL in two expressions, the COALESCE() function is equivalent to the CASE expression.

For example, the following COALESCE() function:

is equivalent to:

Likewise,

is equivalent to

Oracle COALESCE() vs. NVL()

The COALESCE() function is a part of SQL ANSI-92 standard while NVL() function is Oracle specific.,

w przypadku dwóch wyrażeń funkcja COALESCE()I NVL() wydają się być podobne, ale ich implementacje są różne. Patrz następujące polecenia:

obie polecenia zwracają ten sam wynik, który jest jednym. Jednak funkcja COALESCE() ocenia tylko pierwsze wyrażenie, aby określić wynik, podczas gdy funkcja NVL() ocenia oba wyrażenia.,

zobaczmy następujący przykład:

powyższe polecenie zwróciło 1, podczas gdy poniższy przykład powoduje błąd:

błąd wynosi:

ponieważ NVL() funkcja oceniała drugie wyrażenie 1/0 które powoduje błąd.

w tym samouczku nauczyłeś się używać funkcji Oracle COALESCE(), aby zwrócić pierwsze wyrażenie inne niż null na liście wyrażeń.

  • czy ten tutorial był pomocny?,
  • YesNo

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *