shrnutí: v tomto tutoriálu se dozvíte o funkci PostgreSQL COALESCE, která vrací první argument bez null. Naučíte se, jak tuto funkci použít v příkazu SELECT pro efektivní zpracování hodnot null.
PostgreSQL SPLÝVAJÍ syntaxe funkce
syntaxe COALESCE
funkce je následující:
Code language: SQL (Structured Query Language) (sql)
COALESCE
funkce přijímá neomezený počet argumentů. Vrací první argument, který není nulový., Pokud jsou všechny argumenty null, funkce COALESCE
vrátí null.
funkceCOALESCE
vyhodnocuje argumenty zleva doprava, dokud nenajde první nulový argument. Všechny zbývající argumenty z prvního nulového argumentu nejsou vyhodnoceny.
COALESCE
funkce poskytuje stejnou funkci jako NVL
nebo IFNULL
funkce poskytované SQL-standard. MySQL má funkci IFNULL, zatímco Oracle poskytuje funkci NVL
.,
Viz následující příklady:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
často používáme COLAESCE
funkce nahradit výchozí hodnota pro null hodnoty, když jsme dotazování na data. Například chceme zobrazit výňatek z blogu, pokud není výňatek poskytnut, můžeme použít prvních 150 znaků obsahu příspěvku., K dosažení tohoto cíle, můžeme použít COALESCE
funkce:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL SPLÝVAJÍ příklad
Pojďme se podívat na příklad použití COALESCE
funkce. Za prvé, jsme se vytvořit tabulku s názvem položky pomocí příkazu CREATE TABLE následovně:
Code language: SQL (Structured Query Language) (sql)
k Dispozici jsou čtyři pole, v items
tabulky:
- id: primární klíč, který identifikuje položku v tabulce položek.
- produkt: Název produktu.
- cena: cena produktu.,
- sleva: sleva produktu.
za Druhé, jsme-li vložit některé záznamy do položky tabulky pomocí INSERT takto:
za Třetí, jsme dotaz na net ceny produktů pomocí následujícího vzorce:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
podíváte-Li se na čtvrtém řádku, můžete si všimnout, že čistá cena produktu D
je null, což zřejmě není správné., Problémem je sleva produktu D
je null, proto když vezmeme nulovou hodnotu pro výpočet čisté ceny, PostgreSQL vrátí null.
získejte správnou cenu, musíme předpokládat, že pokud je sleva nulová, je nulová., Pak můžeme použít COALESCE
funkce následovně:
Code language: SQL (Structured Query Language) (sql)
čisté ceny produktu D
500
protože jsme použít žádné místo hodnoty null, když jsme spočítali čisté ceny.
kromě použití funkce COALESCE
můžete v tomto případě použít výraz CASE pro zpracování hodnot null. Viz následující dotaz, který používá výraz CASE
k dosažení stejného výsledku výše.,
Code language: SQL (Structured Query Language) (sql)
ve výše uvedeném dotazu říkáme, zda je sleva nulová, pak použijte nulu (0) jinak použijte diskontní hodnotu ve výrazu, který vypočítá čistou cenu.
pokud jde o výkon,COALESCE
funkce a případové vyjádření jsou stejné. Preferujeme COALESCE
funkce než CASE
výraz, protože COALESCE
funkce dělá dotazu kratší a snadněji číst.
v tomto tutoriálu jste se naučili používat funkci COALESCE
k nahrazení hodnot null v dotazu.,
- byl tento tutoriál užitečný ?
- YesNo
Leave a Reply