Welcome to Our Website

Oracle COALESCE

Shrnutí: v tomto tutoriálu, se dozvíte, jak používat Oracle COALESCE() funkce vrátí první ne-null argumenty v seznamu.

Úvod do funkce Oracle COALESCE ()

funkce OracleCOALESCE() přijímá seznam argumentů a vrací první, který hodnotí hodnotu bez null.,

následující příklad ilustruje syntaxi Oracle COALESCE() funkce:

V této syntaxi COALESCE() funkce vrátí první ne-null výraz v seznamu. Vyžaduje alespoň dva výrazy. V případě, že všechny výrazy vyhodnotí null, funkce vrátí null.,

následující příklad vrátí jeden, protože to je první non-null argument:

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

následující příklad vrátí hodnotu null, protože všechny argumenty jsou neplatné:

návratový typ

jsou-Li všechny argumenty mají stejný typ dat, COALESCE() funkce vrací hodnotu datového typu.

pokud mají argumenty různé datové typy, funkce COALESCE() implicitně převádí všechny argumenty na datový typ prvního argumentu bez null., V případě, že konverze selže, pak Oracle vydá chybu.

následující příklad vrací hodnotu s typem znaku, protože všechny argumenty jsou znaky.,

Podobně následující příklad vrátí hodnotu číselný typ:

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

Nicméně, následující příklad používá argumenty pro různé typy COALESCE() funkce:

Oracle vydal následující chyby:

, Protože COALESCE() funkce pokusil převést typ znaků z třetí argument číselný typ druhý argument, který vyústil v chybu.,

hodnocení zkratu

funkceCOALESCE() používá hodnocení zkratu. To znamená, že funkce přestane vyhodnocovat zbývající výrazy, jakmile zjistí, že první z nich vyhodnotí hodnotu bez null.

Vezměme si následující příklad:

V tomto příkladu COALESCE() funkce vyhodnocena pouze první výraz, protože výsledek první výraz byl dva (1+1). Nehodnotil druhý výraz (1/0). Pokud by tak učinilo, společnost Oracle by divizi vydala nulovou chybou.,

Oracle COALESCE() příklad

pojďme nastavit vzorovou tabulku pro testování.

Předpokládejme, že musíte zaznamenat nouzové kontakty zaměstnanců s různými telefonními čísly: pracovní telefon, domácí telefon a mobilní telefon. To udělat, je vytvořit novou tabulku s názvem emergency_contacts takto:

následující příkazy vložit nějaké nouzové kontakty do tabulky:

Některé kontakty byly jen pracovní telefon, zatímco jiní mohou mít domácí telefon a mobilní telefon, nebo nemají žádné telefonní číslo.,

následující dotaz načte zaměstnanců a jejich nouzové kontakty s telefonními čísly:

V tomto příkladu jsme použili COALESCE() funkce vyberte domácí telefon, pracovní telefon, nebo mobilní telefon, pokud každý je k dispozici. V případě, že nejsou k dispozici žádná telefonní čísla, vrátili jsme N/A doslovný řetězec, který je zkratka pro not available.,

následující obrázek ukazuje výsledek dotazu:

Oracle COALESCE() a v PŘÍPADĚ, že výraz

můžete použít COALESCE() funkce místo již CASE výraz, když to přijde k testu na null v více výrazů. COALESCE() funkce je stručnější nežCASE výraz, který zahrnuje nulová hodnocení.,

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

v případě dvou výrazů se zdá, že funkce COALESCE() a NVL() Jsou podobné, ale jejich implementace jsou odlišné. Viz následující příkazy:

oba příkazy vrátí stejný výsledek, který je jeden. Funkce COALESCE() však vyhodnocuje pouze první výraz pro určení výsledku, zatímco funkce NVL() vyhodnocuje oba výrazy.,

podívejme se na následující příklad:

výše uvedené prohlášení se vrátil 1 vzhledem k tomu, že následující příklad způsobí chybu:

chyba:

, Protože NVL() funkce hodnotí druhý výraz 1/0, který způsobuje chybu.

v tomto tutoriálu jste se naučili používat funkci Oracle COALESCE() pro Návrat prvního výrazu bez null v seznamu výrazů.

  • byl tento tutoriál užitečný?,
  • YesNo

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *