Language reference
IsNull (test for missing value)
Syntax
IsNull(<value>)
σ IsNull(email) = true (Users)
Description
IsNull reports whether a value is missing (NULL), returning true or false. Use it in expressions where you need a boolean for missingness — for example inside IIf, or as a computed flag column.
Technical Description
IsNull(value) → BOOLEAN. Returns true iff value is NULL. PURE, DETERMINISTIC. Unlike the = ⊥/= NULL null test (a predicate), IsNull yields a BOOLEAN value usable anywhere an operand is expected.
Examples
Flag rows with a missing email:
π id, IsNull(email) → email_missing (Users)
PROJECT id, IsNull(email) -> email_missing (Users)
Combine with IIf to derive a label:
π id, IIf(IsNull(phone), "no phone", phone) → contact (Users)
PROJECT id, IIf(IsNull(phone), "no phone", phone) -> contact (Users)
Pushdown
SQL: folds to (<e> IS NULL) on all dialects — an operator rather than a call. SQL Server has no boolean value for it to produce, so there it is (CASE WHEN <e> IS NULL THEN 1 ELSE 0 END), the BIT the question answers as. SQL asks the same question of the same three-valued world, so there is no NULL rule to reconcile.
Limitations
For filtering, the dedicated null-test predicate (email = NULL) is the idiomatic form; IsNull is for use as a boolean value in expressions.
Alternatives
The = ⊥ / = NULL predicate for selection conditions; Nz/Coalesce to substitute rather than test.