IS NOT DISTINCT FROM
All functions > COMPARISON > IS NOT DISTINCT FROM
Returns TRUE if two values are not distinct, treating NULL values as comparable (SQL-standard spelling).
Syntax
expr1 IS NOT DISTINCT FROM expr2 · expr1 DISPLAYS AS expr2
Notes
- Semantics match DISPLAYS AS; this entry exists so FORMAT preserves
IS NOT DISTINCT FROMwhen you wrote it that way - Unlike
=, NULL is treated as comparable here NULL IS NOT DISTINCT FROM NULLis TRUE- Operand types must match structurally (including ARRAY/ROW shape and field/element types)
Related Functions
See also
Examples
IS NOT DISTINCT FROM
FeatureQL
SELECT
-- Same values
f1 := (1 IS NOT DISTINCT FROM 1),
-- Different values
f2 := (1 IS NOT DISTINCT FROM 2),
-- Both NULL
f3 := (NULL::BIGINT IS NOT DISTINCT FROM NULL::BIGINT),
-- NULL vs non-NULL
f4 := (NULL::BIGINT IS NOT DISTINCT FROM 1),
-- Non-NULL vs NULL
f5 := (1 IS NOT DISTINCT FROM NULL::BIGINT)
;Result
| f1 BOOLEAN | f2 BOOLEAN | f3 BOOLEAN | f4 BOOLEAN | f5 BOOLEAN |
|---|---|---|---|---|
| true | false | true | false | false |
IS NOT DISTINCT FROM — other types
FeatureQL
SELECT
-- Same doubles
f1 := (1e0 IS NOT DISTINCT FROM 1e0),
-- Both NULL doubles
f2 := (NULL::DOUBLE IS NOT DISTINCT FROM NULL::DOUBLE)
;Result
| f1 BOOLEAN | f2 BOOLEAN |
|---|---|
| true | true |
IS NOT DISTINCT FROM — arrays and rows
FeatureQL
SELECT
-- Equal arrays
f1 := (ARRAY(1, 2) IS NOT DISTINCT FROM ARRAY(1, 2)),
-- Both NULL arrays
f2 := (NULL::ARRAY(BIGINT) IS NOT DISTINCT FROM NULL::ARRAY(BIGINT))
;Result
| f1 BOOLEAN | f2 BOOLEAN |
|---|---|
| true | true |