Nejčastější dotazy/Base/125
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Jak zacházet s prázdnými (nulovými) poli?
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:
- V režimu návrhu je také možné zadat kritérium IS NULL. Po ověření se automaticky nahradí výrazem IS EMPTY.
- 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)