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. These interchangeable forms allow flexibility in how you structure expressions.
- Function notation
- Method notation
firstNonNull(value: any, ...values: any): any
(value: any).firstNonNull(...values: any): any
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
value | any | true | The first argument to check for a non-null value |
...values | any | true | Subsequent 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.
Example data
{
"userId": "123",
"user_id": null,
"user_identifier": null
},
{
"userId": null,
"user_id": "456",
"user_identifier": null
},
{
"userId": null,
"user_id": null,
"user_identifier": "789"
}
Example query
- Function notation
- Method notation
choose canonical_user_id from firstNonNull(userId, user_id, user_identifier)
choose canonical_user_id from userId.firstNonNull(user_id, user_identifier)
Example output
{
"canonical_user_id": "123"
},
{
"canonical_user_id": "456"
},
{
"canonical_user_id": "789"
}