/ / Coalesce sql: popis, použití, příklady

Coalesce sql: popis, použití, příklady

Při kompilaci dotazů sql,Při výběru dat je třeba porovnat hodnoty několika sloupců a vygenerovat jednu z nich, která obsahuje data (není prázdná). Tento problém je dokonale vyřešen výrazem Coalesce. V tomto článku najdete úplný popis výrazu Coalesce sql, popis vlastností použití, stejně jako příklady.

spojit popis sql

Výstup hodnot nula pomocí Coalesce. Vlastnosti

Zvažte vlastnosti Sql Coalesce:

  1. Přiřadí označení libovolného počtu argumentů (na rozdíl od Isnull / Nvl / Nvl2, počet argumentů je omezen).
  2. Může přijmout poddotazy jako argument.
  3. Vrací výsledek rovný první jiné než Null nebo Null, pokud se nenalezne jiná hodnota než hodnota Null.
  4. Sloupce Sql Coalesce lze použít v klauzuli Vybrat pro volbu hodnoty, která není prázdná, a rovněž v části Kde určit, že sada sloupců s prázdnými hodnotami není povolena (/ povoleno).
  5. Данное выражение равнозначно применению выражения Případ, který každý argument postupně kontroluje na podmínce Když argument1 není null, pak argument1. Ve skutečnosti je Coalesce "zkratkou" určenou pro snadné použití a v mnoha optimalizátorech dotazů DBMS přepisuje výraz Coalesce na případu.
  6. Funkce Sql Coalesce jsou k dispozici ve všech předních systémech správy relačních databází.

sql spojit

Syntaxe Coalesce

Každý, kdo alespoň jednou použil Coalescesestavování dotazů sql, ví, že syntaxe tohoto výrazu je velmi jednoduchá. Stačí v závorce uvést argumenty, zaškrtnuté na Nulu, oddělené čárkami. Pokud předpokládáme, že argumenty mají názvy arg1, arg2, ... argN, potom syntaxe Coalesce vypadá takto:

Koalesce (arg1, arg2, ... argN).

sql koalesce funkce

Připravíme několik tabulek pro studium mechanismu tohoto výrazu.

Příprava stolů

Pro lepší pochopení popisu Coalesce sql vytvoříme v databázi dvě tabulky obsahující informace o objektech nemovitostí.

První oblastní tabulka by měla obsahovat názvy objektů s nemovitostmi a jejich oblast. Oblast může být zdokonalena (oblast_yt) nebo deklarována (oblast_decl).

id

název_objektu

area_yt

area_decl

1

Budova 1

116,2

114

2

Nedokončený konstrukční objekt 1

568

3

Pokoj 1

64,7

4

Pokoj 2

34,2

5

Pozemek 1

112

111,6

6

Budova 1

7

Pokoj 3

27,9

8

Budova 2

37,2

36,4

9

Budova 2

Druhá tabulka Basic_characteristic letobsahuje informace o hlavních vlastnostech realitního objektu - rozšíření, hloubka, plocha, rozsah, výška.

id

název_objektu

Rozšíření

Hloubka

Plocha

Rozsah

Výška

1

Budova 1

892,4

30

2

Budova 2

48

3

Budova 1

164,7

4

Pozemek 1

5

Pokoj 1

23,6

6

Pokoj 2

34,7

7

Pokoj 3

19,8

Podívali jsme se na syntaxi, popis, funkce použití Coalesce sql a pojďme přímo k příkladům.

Příklady použití

Syntaxe výrazu Coalesce je extrémně jednoduchá,je však důležité si uvědomit, že příkaz vrátí PRVNÍ neprázdnou hodnotu nalezenou v seznamu argumentů. Tato poznámka je velmi významná, takže argumenty ve výrazu musí být seřazeny podle důležitosti. Nejjednodušší způsob, jak pochopit princip, je z tabulky oblastí. Proveďte dotaz, který vybere název vlastnosti a hodnotu oblasti:

VYBERTE Area.id, Area.object_name, coalesce (Area.area_yt, Area.area_decl)

Z oblasti

A získejte výsledek:

id

název_objektu

Splynout

1

Budova 1

116,2

2

Nedokončený konstrukční objekt 1

568

3

Pokoj 1

64,7

4

Pokoj 2

34,2

5

Pozemek 1

112

6

Budova 1

7

Pokoj 3

27,9

8

Budova 2

37,2

9

Budova 2

U objektů "Budova 1", "Pozemek 1" a„Budova 2“ byly vyplněny obě hodnoty oblasti, ale prioritou byla zadaná oblast, protože jsme ji zadali jako první v seznamu argumentů. Výraz Coalesce našel první neprázdnou hodnotu a vypsal ji, čímž zastavil další skenování argumentů. Tato konstrukce dotazu je správná, protože zadaná oblast je konkrétnější než deklarovaná. Pokud bychom uvedli deklarovanou oblast jako první argument, pak by po vyplnění tohoto pole tabulky mělo prioritu.

Kromě použití Select, velmi častovýraz Coalesce se použije s klauzulí Where. Umožňuje vám odříznout od výsledku ty řádky, ve kterých jsou hodnoty seznamu polí prázdné (nebo naopak, zahrnout do výsledku pouze ty hodnoty, kde je seznam polí prázdný). Tato situace nastává všude: například v podniku při registraci nového zaměstnance byly do databáze zadány pouze základní informace o něm a vyplnění podrobných informací bylo ponecháno „na později“. Postupně se objevují „mezery“ - buď před kontrolou, nebo při vysílání zaměstnance na dovolenou / služební cestu / nemocenskou dovolenou.

Vybereme z tabulky s hlavními charakteristikami objekty nemovitostí, pro které není vyplněna žádná z charakteristických hodnot:

Vyberte ID, název_objektu

FROM Basic_characteristic

Kde splývání (Extension, Depth, Area, Scope, Height) je null

Pro tento požadavek existuje v tabulce jedna shoda - objekt „Pozemek 1“, ve kterém jsou všechna pole s charakteristikami prázdná:

id

název_objektu

4

Pozemek 1

sql spojuje funkce využití

Doufáme, že náš podrobný popis Coalesce sql vám pomohl pochopit všechny funkce používání tohoto výrazu a vypořádat se s důležitými nuancemi.