---
source_url: https://docs.dolphindb.cn/zh/error_codes/S02002.html
fetched_at: 2026-05-19T09:09:15Z
category: error_codes
title: S02002
sha1: 6d2c68411753f3324d0cab8e005af160f1471422
---

# S02002

## 错误代码

S02002

## 报错信息

Failed to parse the metacode of SQL statement into distributed queries.
RefId:S02002

## 错误原因

执行分布式表查询的元代码时，会检查对应的 SQL 语句能否拆分成多个子查询。出现以下几种情况时，会被认为不可被拆分并报错：

1. 子查询结束后，仍需要执行一次统一查询。例如，选取 top 10
   的查询在各个分区执行后，仍需要统一查询一次。

   ```dolphindb
   SELECT EventTime FROM pt ORDER BY EventTime LIMIE 10;
   ```
2. 查询结果和数据的顺序相关。例如，查询中包含[deltas](../funcs/d/deltas.html)（差值运算）。

   ```dolphindb
   SELECT deltas(x) FROM pt;
   ```
3. 查询需要整个表的数据涉及多张不同类型的表。例如，进行 left join
   查询时，左表是内存表，右表是分区表。

   ```dolphindb
   SELECT SUM(x) FROM t1 LEFT JOIN pt2 ON t1.id = pt2.id
   ```
4. 查询中包含 pivot
   by。

   ```dolphindb
   SELECT x FROM PIVOTE BY timestamp, sym;
   ```

## 解决办法

检查元代码中分布式查询的 SQL 语句是否可被拆分为多个子查询。若不能，考虑使用 SQL 语句查询替换 SQL 元代码。

参考以下场景：

```dolphindb
n = 10000
type = take(1..10, n)
t = table(type)
dbName = "dfs://test_db";
db = database(dbName, HASH, [INT, 2])
pt = db.createPartitionedTable(t, `pt, `type)
pt.append!(t)

saveText(<select top 100 * from pt>, "res.txt") // throw exception
saveText(select top 100 * from pt, "res.txt") // OK
```
