> ## 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.

# numbers

> 返回一个仅包含单个 `number` 列的表，该列包含一系列整数。

* `numbers()` – 返回一个无限表，其中只有一个 `number` 列 (UInt64) ，按升序包含从 0 开始的整数。使用 `LIMIT` (以及可选的 `OFFSET`) 可限制返回的行数。

* `numbers(N)` – 返回一个只有单个 `number` 列 (UInt64) 的表，该列包含从 0 到 `N - 1` 的整数。

* `numbers(N, M)` – 返回一个只有单个 `number` 列 (UInt64) 的表，该列包含从 `N` 到 `N + M - 1` 的 `M` 个整数。

* `numbers(N, M, S)` – 返回一个只有单个 `number` 列 (UInt64) 的表，该列包含区间 `[N, N + M)` 内按步长 `S` 递增的值 (约为 `M / S` 行，向上取整) 。`S` 必须 `>= 1`。

这与 [`system.numbers`](/zh/reference/system-tables/numbers) 系统表类似。可用于测试和生成连续值。

以下查询是等价的：

```sql theme={null}
SELECT * FROM numbers(10);
SELECT * FROM numbers(0, 10);
SELECT * FROM numbers() LIMIT 10;
SELECT * FROM system.numbers LIMIT 10;
SELECT * FROM system.numbers WHERE number BETWEEN 0 AND 9;
SELECT * FROM system.numbers WHERE number IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
```

以下查询也等价：

```sql theme={null}
SELECT * FROM numbers(10, 10);
SELECT * FROM numbers() LIMIT 10 OFFSET 10;
SELECT * FROM system.numbers LIMIT 10 OFFSET 10;
```

以下查询也同样等价：

```sql theme={null}
SELECT number * 2 FROM numbers(10);
SELECT (number - 10) * 2 FROM numbers(10, 10);
SELECT * FROM numbers(0, 20, 2);
```

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

前 10 个数。

```sql theme={null}
SELECT * FROM numbers(10);
```

```response theme={null}
 ┌─number─┐
 │      0 │
 │      1 │
 │      2 │
 │      3 │
 │      4 │
 │      5 │
 │      6 │
 │      7 │
 │      8 │
 │      9 │
 └────────┘
```

生成从 2010-01-01 到 2010-12-31 的日期序列。

```sql theme={null}
SELECT toDate('2010-01-01') + number AS d FROM numbers(365);
```

找出第一个 `>= 10^15` 的 `UInt64`，其 `sipHash64(number)` 的末尾有 20 个零位。

```sql theme={null}
SELECT number
FROM numbers()
WHERE number >= 1e15
  AND bitAnd(sipHash64(number), 0xFFFFF) = 0
LIMIT 1;
```

```response theme={null}
 ┌───────────number─┐
 │ 1000000000056095 │ -- 1.00 quadrillion
 └──────────────────┘
```

<div id="notes">
  ### 注意事项
</div>

* 出于性能考虑，如果你知道自己需要多少行，建议优先使用有界形式 (`numbers(N)`、`numbers(N, M[, S])`) ，而不是无界的 `numbers()` / `system.numbers`。
* 如需并行生成，请使用 `numbers_mt(...)` 或 [`system.numbers_mt`](/zh/reference/system-tables/numbers_mt) 表。请注意，返回结果的顺序可能是任意的。
