> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> `any` 的别名，但为兼容窗口函数而引入；在窗口函数中，有时需要处理 `NULL` 值（默认情况下，所有 ClickHouse 聚合函数都会忽略 `NULL` 值）。

# first_value

它是 [`any`](/zh/reference/functions/aggregate-functions/any) 的别名，但为兼容[窗口函数](/zh/reference/functions/window-functions)而引入；在窗口函数中，有时需要处理 `NULL` 值 (默认情况下，所有 ClickHouse 聚合函数都会忽略 `NULL` 值) 。

它支持声明一个保留 null 值的修饰符 (`RESPECT NULLS`) ，既可用于[窗口函数](/zh/reference/functions/window-functions)，也可用于普通聚合。

与 `any` 一样，在不使用窗口函数时，如果输入流未排序，则结果将是随机的，并且返回类型与输入类型一致 (仅当输入为 Nullable 或添加了 -OrNull 组合器时，才会返回 NULL) 。

<div id="examples">
  ## 示例
</div>

```sql theme={null}
CREATE TABLE test_data
(
    a Int64,
    b Nullable(Int64)
)
ENGINE = Memory;

INSERT INTO test_data (a, b) VALUES (1,null), (2,3), (4, 5), (6,null);
```

<div id="example1">
  ### 示例 1
</div>

默认情况下，NULL 值会被忽略。

```sql theme={null}
SELECT first_value(b) FROM test_data;
```

```text theme={null}
┌─any(b)─┐
│      3 │
└────────┘
```

<div id="example2">
  ### 示例 2
</div>

NULL 值会被忽略。

```sql theme={null}
SELECT first_value(b) ignore nulls FROM test_data
```

```text theme={null}
┌─any(b) IGNORE NULLS ─┐
│                    3 │
└──────────────────────┘
```

<div id="example3">
  ### 示例 3
</div>

可接受 NULL 值。

```sql theme={null}
SELECT first_value(b) respect nulls FROM test_data
```

```text theme={null}
┌─any(b) RESPECT NULLS ─┐
│                  ᴺᵁᴸᴸ │
└───────────────────────┘
```

<div id="example4">
  ### 示例 4
</div>

使用带有 `ORDER BY` 的子查询可获得稳定的结果。

```sql theme={null}
SELECT
    first_value_respect_nulls(b),
    first_value(b)
FROM
(
    SELECT *
    FROM test_data
    ORDER BY a ASC
)
```

```text theme={null}
┌─any_respect_nulls(b)─┬─any(b)─┐
│                 ᴺᵁᴸᴸ │      3 │
└──────────────────────┴────────┘
```
