Rezumat: în acest tutorial, veți învăța cum să utilizați Oracle COALESCE()
funcția de a reveni la primul non-null argumente într-o listă.
Introducere în funcția Oracle COALESCE ()
funcția Oracle COALESCE()
acceptă o listă de argumente și returnează prima care evaluează la o valoare non-nulă.,
următoarele ilustrează sintaxa Oracle COALESCE()
funcția:
În această sintaxă, COALESCE()
funcția returnează primul non-null exprimare în listă. Este nevoie de cel puțin două expresii. În cazul în care toate expresiile evaluează la null, funcția returnează null.,
următorul exemplu returnează unul pentru că este primul non-null:
RESULT---------- 1
următorul exemplu returnează null pentru că toate argumentele sunt nule:
tip de Retur
Dacă toate argumentele au același tip de date, COALESCE()
funcția returnează o valoare de acest tip de date.
dacă argumentele au diferite tipuri de date, funcția COALESCE()
convertește implicit toate argumentele la tipul de date al primului argument non-nul., În cazul în care conversia eșuează, Oracle emite o eroare.
următorul exemplu returnează o valoare cu tipul de caracter, deoarece toate argumentele sunt caractere.,
în mod Similar, următorul exemplu returnează o valoare de tip numeric:
RESULT---------- 1
cu toate Acestea, următorul exemplu utilizează argumente de tipuri diferite pentru COALESCE()
funcția:
Oracle a emis următoarea eroare:
Deoarece COALESCE()
funcția încercat pentru a converti tipul de caracter al treilea argument pentru un tip numeric al doilea argument care a dus la o eroare.,
evaluarea scurtcircuitelor
funcția COALESCE()
utilizează evaluarea scurtcircuitelor. Aceasta înseamnă că funcția nu mai evaluează expresiile rămase odată ce constată că prima se evaluează la o valoare non-nulă.
luați în Considerare următorul exemplu:
În acest exemplu, COALESCE()
doar funcția evaluează prima expresie pentru că rezultatul din prima expresie a fost de doi (1+1). Nu a evaluat A doua expresie (1/0). Dacă ar fi făcut acest lucru, Oracle ar fi emis diviziunea prin eroare zero.,
Oracle COALESCE () example
să configurăm un tabel de exemple pentru testare.să presupunem că trebuie să înregistrați contactele de urgență ale angajaților cu diverse numere de telefon: telefon de lucru, telefon de acasă și telefon mobil. Pentru a face aceasta, puteți crea un nou tabel numit emergency_contacts
după cum urmează:
următoarele afirmații introduce unele contacte de urgență în masă:
Unele contacte au doar telefon de serviciu, în timp ce altele pot avea un telefon acasă și telefon mobil sau nu au nici număr de telefon, la toate.,
următoarea interogare preia angajații și contactele lor de urgență cu numere de telefon:
în acest exemplu, am folosit funcția COALESCE()
pentru a selecta telefonul de acasă, telefonul de lucru sau telefonul mobil dacă fiecare este disponibil. În cazul în care nu există numere de telefon sunt disponibile, Ne-am întors N/A
șir literal care vine de la nu este disponibil.,
în urma afișează rezultatul interogării:
Oracle COAGULEZE() și CAZUL de exprimare
puteți folosi COALESCE()
funcția în loc de mai CASE
exprimare atunci când este vorba de a testa pentru nulă în mai multe expresii. Funcția COALESCE()
este mai concisă decât o expresie CASE
care implică evaluări nule.,
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.,
În cazul a două expresii, COALESCE()
funcția și NVL()
pare a fi similare, dar punerea lor în aplicare sunt diferite. A se vedea următoarele afirmații:
ambele declarații returnează același rezultat care este unul. Cu toate acestea, COALESCE()
doar funcția evaluează prima expresie pentru a determina rezultatul, în timp ce NVL()
funcția evaluează ambele expresii.,
Să vedem următorul exemplu:
declarația de mai sus a dat 1 întrucât următorul exemplu cauzează o eroare:
eroare este:
Deoarece NVL()
funcția evaluate cea de-a doua expresie 1/0
care provoacă eroarea.
În acest tutorial, ați învățat cum să utilizați funcția Oracle COALESCE()
pentru a returna prima expresie non-nulă dintr-o listă de expresii.
- a fost acest tutorial util?,
- YesNo