SQL kurz

SQL HOME Úvod do SQL Syntaxe SQL SQL Select SQL Select Distinct SQL Kde SQL A nebo ne Pořadí SQL podle SQL Vložit do Hodnoty SQL Null Aktualizace SQL SQL Odstranit SQL Select Top SQL Min a Max Počet SQL, průměr, součet SQL Like Zástupné znaky SQL SQL In SQL mezi Aliasy SQL SQL se připojí SQL Vnitřní spojení SQL Levé připojení SQL Right Join Plné připojení k SQL SQL Self Join SQL Union SQL Group By SQL mít SQL existuje SQL Any, All SQL Select Into SQL Vložit do výběru Případ SQL Funkce SQL Null SQL uložené procedury Komentáře SQL Operátoři SQL

SQL databáze

SQL Vytvořit DB SQL Drop DB SQL Backup DB Vytvořit tabulku SQL SQL Drop Table SQL Alter Table Omezení SQL SQL Not Null Jedinečný SQL Primární klíč SQL cizí klíč SQL Kontrola SQL Výchozí SQL SQL index Automatické zvýšení SQL SQL data SQL pohledy SQL Injection SQL Hosting SQL datové typy

SQL reference

Klíčová slova SQL Funkce MySQL Funkce serveru SQL Funkce MS Access SQL Quick Ref

Příklady SQL

Příklady SQL SQL kvíz SQL cvičení SQL certifikát

Funkce SQL NULL


Funkce SQL IFNULL(), ISNULL(), COALESCE() a NVL().

Podívejte se na následující tabulku "Produkty":

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23  
3 Gorgonzola 15.67 9 20

Předpokládejme, že sloupec "UnitsOnOrder" je volitelný a může obsahovat hodnoty NULL.

Podívejte se na následující příkaz SELECT:

SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;

Pokud je ve výše uvedeném příkladu některá z hodnot "UnitsOnOrder" NULL, výsledek bude NULL.


Řešení

MySQL

Funkce MySQL IFNULL()vám umožňuje vrátit alternativní hodnotu, pokud je výraz NULL:

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;

nebo můžeme použít funkci takto: COALESCE()

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

SQL Server

Funkce SQL Server ISNULL()vám umožňuje vrátit alternativní hodnotu, když je výraz NULL:

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;

MS Access

Funkce MS Access IsNull()vrátí TRUE (-1), pokud je výraz nulová hodnota, jinak FALSE (0):

SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;

Věštec

Funkce Oracle NVL()dosahuje stejného výsledku:

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;