OceanBase 是一个分布式数据库系统,支持类似 SQL 的查询语言。在进行层次查询时,通常使用递归查询来处理具有层次结构的数据。在 OceanBase 中,你可以使用 CONNECT BY 子句执行层次查询。

以下是一个简单的例子,假设有一个名为 "organization" 的表,其中包含了组织结构的信息,如下:
CREATE TABLE organization (
    id INT,
    name VARCHAR(255),
    parent_id INT
);

INSERT INTO organization VALUES (1, '总公司', NULL);
INSERT INTO organization VALUES (2, '分公司A', 1);
INSERT INTO organization VALUES (3, '分公司B', 1);
INSERT INTO organization VALUES (4, '部门1', 2);
INSERT INTO organization VALUES (5, '部门2', 2);
INSERT INTO organization VALUES (6, '部门3', 3);

现在,如果你想查询总公司下的所有子公司和部门,可以使用 CONNECT BY 子句,如下所示:
SELECT * FROM organization
START WITH id = 1
CONNECT BY PRIOR id = parent_id;

这个查询会返回总公司、分公司A、分公司B以及它们下属的部门的信息。在 CONNECT BY 子句中,PRIOR 关键字用于指定连接条件。

请根据你的实际表结构和数据进行相应的调整。


转载请注明出处:http://www.pingtaimeng.com/article/detail/11738/OceanBase