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.
    Other languages:


    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)