NULL tests start with visible missing and present values.

highlighted = computed this step

Base rows

NULL tests start from visible rows with missing and present values.

missing vs present\text{missing vs present}

Show the rows

The pinned input has 5 rows and 2 missing city values.

missing city rows=2\text{missing city rows}=2

NULL-test examples are tiny finite-table transforms for IS NULL and IS NOT NULL; SQL dialect completeness, optimizer behavior, indexing, and product claims are out of scope.

Base rows with NULLs: base rowsidnamecityscore1AnnAustin102BoNULL203CyBostonNULL4DiNULL305EliDenver40 NULL test result per rowsourcetestedValueisNulltruthoutputRole0AustinnoFALSEdropped1NULLyesTRUEkept2BostonnoFALSEdropped3NULLyesTRUEkept4DenvernoFALSEdropped WHERE-style TRUE-only output rowsidnamecityscore2BoNULL204DiNULL30 NULL-test factsfactvalueinputRowCount5nullCount2presentCount3trueCount2falseCount3unknownCount0outputRowCount2droppedRowCount3negatednowhereKeepsTRUE_only_source_order

Read the tested column

The NULL test checks the city value row by row.

test city\text{test city}

Summary

The diagram keeps the base rows, test facts, and output rows together.

one visible pipeline\text{one visible pipeline}