---
source_url: https://docs.dolphindb.cn/zh/funcs/f/firstNot.html
fetched_at: 2026-05-19T09:21:45Z
category: funcs
title: firstNot
sha1: 2b0d9282dadd58a3de687697b58da89f1602c28f
---

# firstNot

## 语法

`firstNot(X, [k])`

## 详情

若 *X* 是向量：

- 如果没有指定 *k*，返回 *X* 中第一个不为 NULL 的元素。
- 如果指定 *k*，返回 *X* 中第一个不为 *k* 或 NULL 的元素。

若 *X* 是矩阵或表，在每列内进行上述计算，返回一个向量。

`firstNot` 函数也支持查询分布式表和分区表。

## 参数

**X** 可以是标量、数据对、向量、矩阵或表。

**k** 是一个标量，它是可选参数。

## 返回值

- 当 *X* 是向量时，返回标量，数据类型与 *X* 相同
- 当 *X* 是矩阵或表时，返回向量，每个元素对应每列的计算结果，数据类型与原列元素类型相同。

## 例子

*X* 是向量：

```dolphindb
firstNot(0 0 0 6 1, 0);
// output
6

firstNot(NULL 0 3 2 1, 0);
// output
3

firstNot(NULL 0 1 6);
// output
0

t=table(1 1 1 1 1 2 2 2 2 2 as id, 0 0 0 2 1 NULL NULL 0 0 3 as x);
t;
```

| id | x |
| --- | --- |
| 1 | 0 |
| 1 | 0 |
| 1 | 0 |
| 1 | 2 |
| 1 | 1 |
| 2 |  |
| 2 |  |
| 2 | 0 |
| 2 | 0 |
| 2 | 3 |

```dolphindb
select firstNot(x, 0) from t group by id;
```

| id | firstNot\_x |
| --- | --- |
| 1 | 2 |
| 2 | 3 |

```dolphindb
m=matrix(0 NULL 1 2 3, NULL 2 NULL 0 3);
m;
```

| #0 | #1 |
| --- | --- |
| 0 | 2 |
| 1 |  |
| 2 | 0 |
| 3 | 3 |

```dolphindb
firstNot(m, 0);
// output
[1,2]
```
