Skip to content

firstNonNull

Description

Return the first non-null value from a list of arguments, in the order they are provided.

Note

Works only on scalar values such as number, string, or timestamp. Does not work on objects.

Syntax

Like many functions in DataPrime, firstNonNull supports two notations, function and method notation. These interchangeable forms allow flexibility in how you structure expressions.

firstNonNull(value: any, ...values: any): any
(value: any).firstNonNull(...values: any): any

Arguments

NameTypeRequiredDescription
valueanytrueThe first argument to check for a non-null value
...valuesanytrueSubsequent arguments to check, in order

Example

Use case: Consolidate inconsistent field names for the same logical value

Logs may contain a user identifier under different field names (userId, user_id, user_identifier). Instead of writing complex conditionals, firstNonNull returns the first populated value across these fields, creating schema-on-read consistency.

{
    "userId": "123",
    "user_id": null,
    "user_identifier": null
},
{
    "userId": null,
    "user_id": "456",
    "user_identifier": null
},
{
    "userId": null,
    "user_id": null,
    "user_identifier": "789"
}
choose canonical_user_id from firstNonNull(userId, user_id, user_identifier)
choose canonical_user_id from userId.firstNonNull(user_id, user_identifier)

Output

{
    "canonical_user_id": "123"
},
{
    "canonical_user_id": "456"
},
{
    "canonical_user_id": "789"
}