Faq/Base/125/cs

Výpočty v polích
V LibreOffice jsou nulové hodnoty vždy propagovány, s výjimkou případů, kdy je nad nulovým polem proveden výpočet. Výsledkem takového výrazu je vždy Null.

Například při operacích, jako je:

"Total" - "Account"

poskytne výsledek Null, pokud nebylo zadáno jedno z polí. Řešením je použití funkce, která testuje, zda pole obsahují data, nebo ne. Z dostupných funkcí se často používá IFNULL'. Její syntaxe je následující

IFNULL(exp, value)

Pokud je exp Null, vrátí se value, jinak se vrátí hodnota exp.

V tomto příkladu je použita funkce IFNULL, která vrací nulu, pokud je pole prázdné.



Příkaz SQL je

SELECT "ID", "Acompte", "Total", "Total" - "Acompte", IFNULL( "Total", 0 ) - IFNULL( "Acompte", 0 ) FROM "Table1"

Výběr řádků s nulovými hodnotami
Výběr řádků obsahujících prázdná pole.


 * Kritérium výběru, které se použije v režimu návrhu, je :

IS EMPTY


 * Kritérium výběru v režimu SQL je

IS NULL


 * Pro výše uvedený příklad



Poznámky:


 * 1) V režimu návrhu je také možné zadat kritérium IS NULL.  Po ověření se automaticky nahradí výrazem IS EMPTY.
 * 2) V režimu SQL je platná pouze syntaxe IS NULL.

SELECT "ID", "Acompte", "Total" FROM "Table1" WHERE "Acompte" IS NULL

Správa logických polí



 * Výběr řádků s nevyplněnými logickými poli používá stejné kritérium, IS EMPTY.
 * Je třeba poznamenat, že logické pole může mít tři stavy: zaškrtnuté, nezaškrtnuté a prázdné.

Dva posledně jmenované stavy nejsou ekvivalentní: unchecked = FALSE (nepravda nebo 0) a empty = neurčitý/nespecifikovaný.


 * LibreOffice zobrazuje tyto různé stavy takto: nezaškrtnuto = prázdné, nevyplněno = barva pozadí.
 * IS EMPTY vybere nevyplněné případy (nezadané)
 * FALSE vybere nezaškrtnuté případy (hodnota je false nebo 0).
 * TRUE vybere zaškrtnuté (hodnota je true nebo 1)