---
title: if
description: |
  Return one value if a condition is `true`, otherwise return an alternative
  value.
url: https://coralogix.com/docs/dataprime/language-reference/functions-reference/general/if/
product: dataengine
feature: DataPrime Language
feature_id: dataprime-language
feature_identifier: dataengine/dataprime-language
last_updated: '2026-10-21'
---

# `if`

## Description

Return one value if a condition is `true`, otherwise return an alternative value.

## Syntax

Like many functions in DataPrime, `if` 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

```
if(condition: bool, then: T, else: T?): T
```

```
(condition: bool).if(then: T, else: T?): T
```

## Arguments

| Name        | Type   | Required  | Description                                 |
| ----------- | ------ | --------- | ------------------------------------------- |
| `condition` | `bool` | **true**  | Condition to evaluate                       |
| `then`      | `T`    | **true**  | Value to return if the condition is `true`  |
| `else`      | `T`    | **false** | Value to return if the condition is `false` |

## Example

**Use case: Add a flag based on whether an IP belongs to a subnet**

If an IP is in the `10.0.0.0/8` range, mark it with a flag. This avoids recalculating the condition multiple times.

### Example data

```
{

    "ip": "10.8.0.8"

}
```

### Example query

* Function notation
* Method notation

```
create is_in_10_subnet from if(ipInSubnet(ip, '10.0.0.0/8'), true, false)
```

```
create is_in_10_subnet from ip.ipInSubnet('10.0.0.0/8').if(true, false)
```

### Example output

```
{

    "ip": "10.8.0.8",

    "is_in_10_subnet": true

}
```
