Translation not up to date
Práce se záznamy s chybějícími hodnotami systému
Co systém postrádá hodnoty?
Systémem chybějící hodnoty reprezentují datové hodnoty, které nejsou známé nebo nejsou použitelné. V databázích jsou tyto hodnoty často označovány jako hodnoty NULL . Systémové chybějící hodnoty se liší od prázdných hodnot. Prázdné hodnoty jsou obvykle definovány v uzlu Typ jako konkrétní hodnoty nebo rozsahy hodnot, které lze považovat za uživatelsky definované-chybějící. Prázdné hodnoty jsou v kontextu modelování zpracovány jiným způsobem.
Konstruování systémových chybějících hodnot
Systémem chybějící hodnoty mohou být obsaženy v datech, která se čtou ze zdroje dat (například databázové tabulky mohou obsahovat hodnoty NULL ). Systémem chybějící hodnoty lze konstruovat pomocí hodnoty
ve výrazech. Například, následující výraz CLEM vrátí undef
, pokud je menší nebo rovno Age
, nebo chybějící hodnotu, pokud je větší než 30
:30
if Age > 30 then undef else Age endif
Chybějící hodnoty lze také vytvořit, když je provedeno vnější spojení, je-li číslo děleno nulou, kdy se počítá druhá odmocnina záporného čísla a v jiných situacích.
Zobrazení systémových chybějících hodnot
Systémem chybějící hodnoty jsou zobrazeny v tabulkách a dalším výstupu jako
.$null$
Testování pro chybějící hodnoty systému
Použijte speciální funkci @NULL k vrácení
, pokud hodnota argumentu je systémovou chybějící hodnotou. Příklad:true
if @NULL(MyFieldName) then 'It is null' else 'It is not null' endif
Systém postrádá hodnoty předané funkcím
Systémem chybějící hodnoty, které jsou předávány do funkcí, obvykle šíří chybějící hodnoty na výstup. Je-li například hodnota pole
systémem chybějící hodnota v určitém řádku, výraz f1
se také vyhodnotí na systém chybějící hodnotu pro tento řádek. Výjimkou je funkce @NULL .log(f1)
Systém postrádá hodnoty ve výrazech, které zahrnují aritmetické operátory
Použití aritmetických operátorů na hodnoty, které obsahují systémovou chybějící hodnotu, má za následek chybějící hodnotu systému. Je-li například hodnota pole
systémem chybějící hodnota v určitém řádku, výrazf1
se také vyhodnotí na systém chybějící hodnotu pro tento řádek. f1 + 10
Systém postrádá hodnoty ve výrazech, které zahrnují logické operátory
Když pracujete se systémem s chybějícími hodnotami ve výrazech, které zahrnují logické operátory, použijí se pravidla tříhodnotové logiky (true, falsea chybějící) a mohou být popsány v tabulkách pravdy. Tabulky pravdivosti pro společné logické operátory not, anda or jsou zobrazeny v následujících tabulkách.
Operand | NOT Operand |
---|---|
ano | ne |
ne | ano |
chybí | chybí |
Operand1 | Operand2 | Operand1 AND Operand2 |
---|---|---|
ano | ano | ano |
ano | ne | ne |
ano | chybí | chybí |
ne | ano | ne |
ne | ne | ne |
ne | chybí | ne |
chybí | ano | chybí |
chybí | ne | ne |
chybí | chybí | chybí |
Operand1 | Operand2 | Operand1 OR Operand2 |
---|---|---|
ano | ano | ano |
ano | ne | ano |
ano | chybí | ano |
ne | ano | ano |
ne | ne | ne |
ne | chybí | chybí |
chybí | ano | ano |
chybí | ne | chybí |
chybí | chybí | chybí |
Systém postrádá hodnoty ve výrazech, které zahrnují operátory porovnání
Když porovnáte systémovou chybějící hodnotu a nesystémovou hodnotu, výsledek se vyhodnotí spíše na systémovou chybějící hodnotu, než na pravdivou nebo nepravdivou hodnotu. Systémem chybějící hodnoty lze porovnat navzájem; dva systémové chybějící hodnoty se považují za shodné.
Systémem chybějící hodnoty ve výrazech if/then/else/endif
Použijete-li podmíněné výrazy a podmíněný výraz vrací systémovou hodnotu, hodnota z klauzule
se vrátí z podmíněného výrazu.else
Systém postrádá hodnoty v uzlu výběru
Když se pro konkrétní záznam výraz výběru vyhodnotí na chybějící hodnotu, záznam nebude výstupem z uzlu výběru (tato akce se použije na režimy zahrnutí a vyřazení).
Systém postrádá hodnoty v uzlu sloučení
Když sloučíte pomocí klíče, žádné záznamy, které mají systémové chybějící hodnoty v klíčeném poli, se nesloučí.
Systém postrádá hodnoty v agregaci
Při agregaci dat ve sloupcích nejsou do výpočtu zahrnuty chybějící hodnoty. Například ve sloupci se třemi hodnotami {
, 1
a 2
} se součet hodnot ve sloupci vypočítá jako undef
; střední hodnota se vypočítá jako 3
.1.5