Pri zostavovaní dotazov sql sa často vyskytuje situácia, keď pri odbere vzoriek je potrebné porovnať hodnotu niekoľkých stĺpcov a z nich odvodiť, ktorá obsahuje údaje (nie prázdne). Tento problém je dokonale vyriešený výrazom Coalesce. V tomto článku nájdete úplný opis výrazu Coalesce sql, popis funkcií použitia a príklady.
Vykonajte neprázdne hodnoty pomocou funkcie Coalesce. Funkcie
Coalesce syntax
Príprava tabuliek
id
object_name
area_yt
35
1
Budova 1
50)
2
Objekt neúplnej konštrukcie 1
)
568
3
)
4
95)
342
5
1116
6
125)
Izba 3
(141 ) 149
8
Budovy 2
Budova 2
Druhá tabuľka Basic_characteristic obsahuje informácie o hlavných vlastnostiach objektu - rozšírenie, hĺbka, plocha (Oblasť, Rozsah, Výška.
Hĺbka
196),
, oblasť
Obsah
, výška
1
(211 )
Budova 1
, 8924
30
2
Building 2 (242 )
,
,
, 48
3
Konštrukcia 1
, 1647
4
Land 1
1
, 236
)
, 347
7
, umiestnenie 3
(389 )
, 198
, považuje za syntaxe splývajú SQL popis , zvláštne použite a prejdite priamo na príklady.
Príklady použitia
Vyberte Area.id Area.object_name, splývajú (Area.area_yt, Area.area_decl) z oblasti (410 )
a dostanete výsledok:
iD hodnotu
object_name
splývajú
1
Stavebné 1
, 1162
2
1 zariadenia vo výstavbe
, 568
3
priestor 1
, 647
4
umiestnenia 2
(468 )
342
5
Land 1
, 112
6
stavba 1
7
, umiestnenie 3
372
, 9
2 budovy
, na objektoch budovanie "1", "krajina sekcia 1 "a" Stavba 2 "boli naplnené oboch spomínaných oblastiach, ale prioritná oblasť bola vylepšená tak, ako ju ukázal v prvom zozname argumentov. Výraz Coalesce našiel prvý negatívny význam a vyhnal ho a zastavil ďalšie preskúmanie argumentov. Táto konštrukcia požiadavky je pravdivá, pretože špecifikovaná oblasť je presnejšia ako deklarovaná. Ak sme ako prvý argument uviedli deklarovanú oblasť, potom pri vyplňovaní tohto poľa tabuľky by to bolo v priorite. Okrem použitia vo funkcii Vybrať sa veľmi často používa výraz Coalesce s podmienkou Kde. Umožňuje vám odrezať výsledok tých riadkov, v ktorých je hodnota zoznamu polí prázdna(alebo naopak, zahrňte vo výsledku iba hodnoty, pri ktorých nie je vyplnený zoznam polí). Táto situácia nastáva všade: napríklad v podniku pri registrácii nového zamestnanca do databázy iba základné informácie o ňom a vyplnenie podrobných informácií, ktoré zostali "neskôr". Postupne sa objavujú "medzery" - a to buď skôr, ako skontrolujete, či zamestnanec odíde z dovolenky /cestovania /nemocenskej dovolenky.
Vyberte z tabuľky z hlavných charakteristík vlastností, ktoré ešte nedokončili niektorú z hodnôt:
SELECT id, object_name FROM Basic_characteristic Kde COALESCE (Extension, hĺbka, plocha, Scope, výška) je null
Podľa výsledkov v tabuľke je náhoda - objekt "plot 1", ktorý je k dispozícii všetky polia prázdne:
id hodnota
object_name
4
Land 1