---
title: 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.
url: https://coralogix.com/docs/dataprime/language-reference/functions-reference/general/firstnonnull/
product: dataengine
feature: DataPrime Language
feature_id: dataprime-language
feature_identifier: dataengine/dataprime-language
last_updated: '2026-10-21'
---

# `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](https://coralogix.com/docs/dataprime/language-reference/functions-reference.md),<!-- --> **function** and **method**. These interchangeable forms allow flexibility in how you structure expressions.

* Function notation
* Method notation

```
firstNonNull(value: T, ...values: T): T
```

```
(value: T).firstNonNull(...values: T): T
```

## Arguments

| Name        | Type | Required | Description                                      |
| ----------- | ---- | -------- | ------------------------------------------------ |
| `value`     | `T`  | **true** | The first argument to check for a non-null value |
| `...values` | `T`  | **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"

}
```
