Jump to content

Nejčastější dotazy/Base/125

From The Document Foundation Wiki
< Faq | Base
This page is a translated version of the page Faq/Base/125 and the translation is 100% complete.


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é.

První výpočet vede k nule (nesprávně zobrazeno) pro řádek "1", protože "Acompte" nemá žádnou hodnotu

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

Výběr řádků s prázdnými hodnotami


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í

Možné stavy 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)