Welcome to Our Website

Oracle COALESCE funktion

sammanfattning: i den här handledningen kommer du att lära dig hur du använder Oracle COALESCE() funktion för att returnera de första icke-null argument i en lista.

introduktion till funktionen Oracle COALESCE ()

funktionen OracleCOALESCE() accepterar en lista med argument och returnerar den första som utvärderar till ett icke-null-värde.,

följande illustrerar syntaxen för Oracle COALESCE() funktion:

i denna syntax returnerar funktionen COALESCE() det första icke-null-uttrycket i listan. Det kräver minst två uttryck. Om alla uttryck utvärderar till null returnerar funktionen null.,

följande exempel returnerar ett eftersom det är det första icke-null-argumentet:

följande exempel returnerar null eftersom alla argument är null:

returtyp

om alla argument har samma datatyp returnerar

<= "525ff2d3c3" >

funktionen returnerar ett värde av den datatypen.

om argumenten har olika datatyper konverterar funktionenCOALESCE() implicit alla argument till datatypen för det första icke-null-argumentet., Om konverteringen misslyckas, utfärdar Oracle ett fel.

följande exempel returnerar ett värde med teckentyp eftersom alla argument är tecken.,

På samma sätt returnerar följande exempel ett värde med numerisk typ:

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

följande exempel använder dock argument av olika slag för funktionenCOALESCE():

Oracle utfärdade följande fel:

eftersom funktionenCOALESCE() försökte konvertera teckentypen för det tredje argumentet till en numerisk typ av det andra argumentet som resulterade i ett fel.,

kortslutningsutvärdering

funktionenCOALESCE() använder kortslutningsutvärdering. Det betyder att funktionen slutar utvärdera de återstående uttrycken när den hittar den första utvärderar till ett icke-null-värde.

Tänk på följande exempel:

i det här exemplet utvärderade funktionen COALESCE() endast det första uttrycket eftersom resultatet av det första uttrycket var två (1+1). Det utvärderade inte det andra uttrycket (1/0). Om det hade gjort det skulle Oracle ha utfärdat divisionen med nollfel.,

Oracle COALESCE() exempel

Låt oss ställa in en provtabell för testning.

Antag att du måste spela in nödkontakter för anställda med olika telefonnummer: arbetstelefon, hemtelefon och mobiltelefon. För att göra det skapar du en ny tabell som heter emergency_contacts enligt följande:

följande uttalanden sätter in några nödkontakter i tabellen:

vissa kontakter har bara arbetstelefon medan andra kanske har en hemtelefon och mobiltelefon eller inte har något telefonnummer alls.,

följande fråga hämtar de anställda och deras nödkontakter med telefonnummer:

i det här exemplet använde vi funktionen COALESCE() för att välja hemtelefon, arbetstelefon eller mobiltelefon om var och en är tillgänglig. Om inga telefonnummer är tillgängliga returnerade viN/A bokstavlig sträng som står för not available.,

följande visar resultatet av frågan:

Oracle COALESCE() och CASE expression

Du kan använda funktionenCOALESCE() istället för den längre funktionenCASE uttryck när det gäller att testa för null i flera uttryck. COALESCE() – funktionen är mer kortfattad än ettCASE – uttryck som innefattar null-utvärderingar.,

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

vid två uttryck verkar funktionenCOALESCE() ochNVL() vara likartad, men deras implementeringar är olika. Se följande uttalanden:

båda uttalandena returnerar samma resultat som är ett. FunktionenCOALESCE() utvärderar dock endast det första uttrycket för att bestämma resultatet medan funktionenNVL() utvärderar båda uttrycken.,

låt oss se följande exempel:

uttalandet ovan returnerade 1 medan följande exempel orsakar ett fel:

felet är:

eftersom funktionen NVL() utvärderade det andra uttrycket NVL()

som orsakar felet.

i den här handledningen har du lärt dig hur du använder funktionen Oracle COALESCE() för att returnera det första icke-null-uttrycket i en lista med uttryck.

  • var den här handledningen till hjälp?,
  • YesNo

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *