Úvod
Při správě dat v PostgreSQL zjistíte, že práce s hodnotami NULL může být poněkud obtížná. Například většina výrazů vrací hodnotu NULL, pokud je některý prvek výrazu NULL. Jak se můžeme vyhnout některým potížím spojeným s hodnotami NULL? V prvním článku tohoto dvoudílného seriálu jsme si vysvětlili, jak lze funkci PostgreSQL COALESCE použít k testování hodnot NULL a nahrazení hodnot NULL jinou hodnotou. V tomto článku navážeme tam, kde jsme skončili, a budeme pokračovat v diskusi o funkci COALESCE a jejím použití v PostgreSQL.
Předpoklady
Předtím, než se pokusíte postupovat podle příkladů v tomto článku, ujistěte se, že je PostgreSQL na vašem počítači již nainstalována. Měli byste mít také určité úvodní znalosti o PostgreSQL, abyste pochopili příklady funkce COALESCE.
COALESCE v rozhraní příkazového řádku psql
V předchozím článku jsme si vysvětlili, jak přistupovat k rozhraní příkazového řádku psql pro PostgreSQL. Budeme muset opět vstoupit do konzoly příkazového řádku psql, abychom si vyzkoušeli některé příklady COALESCE.
Začneme jednoduchým příkladem uvedeným níže:
| 1 |  SELECT COALESCE (‚apple‘ , ‚pear‘ , ‚strawberry‘); | 
Výstup tohoto dotazu bude následující:
| 1 2 3 |  COALESCE ———- jablko | 
Jak vidíte, vráceným výstupem je ‚jablko‘, protože je to první nenulová hodnota v seznamu argumentů.
Pokud máme jako první položku seznamu hodnotu NULL, funkce COALESCE ji přeskočí a hledá první hodnotu, která není NULL. Jak to funguje, můžeme vidět na následujícím dotazu:
| 1 |  SELECT COALESCE ( NULL, ‚apple‘ , ‚pear‘ , ‚strawberry‘); | 
Výstup bude následující:
| 1 2 3 4 |  COALESCE ———- apple (1 ROW) | 
Použije PostgreSQL COALESCE timestamp null
V našem dalším příkladu, zkusíme použít funkci COALESCE s datovým typem timestamp.
Nejprve budeme muset v PostgreSQL vytvořit další tabulku:
| 1 2 3 4 5 6 7 |  CREATE TABLE books( book_id INT PRIMARY KEY NOT NULL, název_knihy VARCHAR NOT NULL, množství INT, cena REAL, rok_vydání TIMESTAMP ); | 
Musíme také vložit záznamy do tabulky books, kterou jsme právě vytvořili:
| 1 2 3 4 5 6 7 |  INSERT INTO books(book_name, quantity, price, year_released) VALUES (‚Book1‘, 12, 60, ‚2015-07-21 09:10:25+8″), (‚Book2‘, 5, 55, ‚2018-02-12 15:40:15+8″), („Book3“, 10, 90, „2017-11-12 00:10:11+8“), („Book4“, 26, 47, NULL), („Book5“, 2, 83, „2019-03-05 03:05:Všimněte si, že jsme do naší tabulky vložili hodnotu NULL do sloupce year_released, který má datový typtimestamp.Představme si, že bychom chtěli získat celkovou cenu jednotlivých knih. Abychom tuto informaci získali, vynásobíme hodnoty dvou sloupců:  
 Výstup dotazu bude vypadat takto: 
 Podívejme se na obsah tabulky  
 Výstup by vypadal takto: 
 
 
 Takto bude vypadat výstup: 
 ZávěrV této dvoudílné sérii článků jsme se podrobně zabývali funkcí PostgreSQL COALESCE. Ukázali jsme si několik příkladů, jak lze tuto funkci použít k testování hodnot NULL v datech a v případě potřeby ji nahradit hodnotou jinou než NULL. Na základě těchto příkladů budete připraveni začlenit funkci  |