Welcome to Our Website

Oracle COALESCE Function

samenvatting: in deze tutorial leert u hoe u de Oracle COALESCE() functie gebruikt om de eerste Niet-null argumenten in een lijst te retourneren.

Inleiding tot de functie Oracle COALESCE ()

De functie Oracle COALESCE() accepteert een lijst met argumenten en retourneert de eerste die evalueert naar een niet-null waarde.,

het volgende illustreert de syntaxis van de Oracle COALESCE() functie:

in deze syntaxis geeft de functie COALESCE() de eerste Niet-null expressie in de lijst terug. Het vereist ten minste twee uitdrukkingen. In het geval dat alle uitdrukkingen te evalueren om null, de functie retourneert null.,

het volgende voorbeeld geeft één terug omdat het het eerste non-null argument is:

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

het volgende voorbeeld geeft null terug omdat alle argumenten null zijn:

Return type

als alle argumenten hetzelfde zijn gegevenstype, de functie COALESCE() geeft een waarde van dat gegevenstype terug.

als de argumenten verschillende gegevenstypen hebben, converteert de functie COALESCE() impliciet alle argumenten naar het gegevenstype van het eerste non-null argument., In het geval dat de conversie mislukt, dan geeft Oracle een fout.

het volgende voorbeeld geeft een waarde met karaktertype terug omdat alle argumenten tekens zijn.,

Ook het volgende voorbeeld retourneert de waarde in met de numerieke type:

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

Echter, het volgende voorbeeld wordt de argumenten van de verschillende types voor de COALESCE() functie:

Oracle uitgegeven de volgende fout:

Omdat COALESCE() functie geprobeerd om te converteren van het type teken van het derde argument om een numeriek type van het tweede argument dat resulteerde in een fout.,

kortsluitingsevaluatie

de COALESCE() functie maakt gebruik van kortsluitingsevaluatie. Het betekent dat de functie stopt met het evalueren van de resterende expressies zodra het de eerste vindt evalueert naar een niet-null waarde.

beschouw het volgende voorbeeld:

in dit voorbeeld evalueerde de functie COALESCE() alleen de eerste expressie omdat het resultaat van de eerste expressie twee was (1+1). De tweede uitdrukking (1/0) werd niet beoordeeld. Als het dat had gedaan, zou Oracle de verdeling door nul fout hebben uitgegeven.,

Oracle COALESCE() example

laten we een sample table opzetten voor het testen.

stel dat u noodcontacten moet opnemen van medewerkers met verschillende telefoonnummers: werktelefoon, thuistelefoon en mobiele telefoon. Om dit te doen, maakt u als volgt een nieuwe tabel aan met de naam emergency_contacts:

de volgende instructies voegen enkele noodcontacten in de tabel in:

sommige contacten hebben alleen werktelefoon, terwijl anderen een thuistelefoon en mobiele telefoon hebben of helemaal geen telefoonnummer hebben.,

de volgende zoekopdracht haalt de werknemers en hun noodcontacten met telefoonnummers op:

in dit voorbeeld hebben we de functie COALESCE() gebruikt om thuistelefoon, werktelefoon of mobiele telefoon te selecteren als ze beschikbaar zijn. In het geval dat er geen telefoonnummers beschikbaar zijn, retourneerden we N/A letterlijke tekenreeks die staat voor niet beschikbaar.,

het volgende toont het resultaat van de query:

Oracle COALESCE() and CASE expression

u kunt de COALESCE() functie in plaats van de langere CASE expressie als het gaat om het testen van NULL in meerdere expressies. De COALESCE() functie is beknopter dan een CASE expressie Die null evaluaties omvat.,

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.,

in het geval van twee expressies lijkt de functie COALESCE() en NVL() vergelijkbaar, maar hun implementaties zijn verschillend. Zie de volgende statements:

beide statements geven hetzelfde resultaat, dat één is. Echter, de functie COALESCE() evalueert alleen de eerste expressie om het resultaat te bepalen, terwijl de functie NVL() beide expressies evalueert.,

Laten we zie het volgende voorbeeld:

De instructie hierboven geretourneerd 1 overwegende dat in het volgende voorbeeld wordt een fout:

De fout is:

Omdat NVL() functie geëvalueerd in de tweede expressie 1/0 dat de fout veroorzaakt.

in deze tutorial hebt u geleerd hoe u de Oracle COALESCE() functie kunt gebruiken om de eerste Niet-null expressie in een lijst met expressies te retourneren.

  • Was deze tutorial nuttig?,
  • YesNo

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *