# Hierarchy

hierarchy 前缀用于将父子层次表格转换成在 Qlik Sense 数据模型中有用的表格。此前缀可能置于 LOAD 或 SELECT 语句前面，并会使用加载的语句结果作为表格转换的输入。

此前缀创建了一个扩展节点表格，通常其与输入的表格具有相同数目的记录，但除此之外， 所有层次结构级别均存储于单独的字段内。路径字段可以在树结构中使用。

语法：

Hierarchy (NodeID, ParentID, NodeName, [ParentName, [PathSource, [PathName, [PathDelimiter, Depth]]]])(loadstatement | selectstatement)

输入表格必须为相邻节点表格。相邻表格内每个记录对应一个节点，并且拥有一个包含父节点参考的字段。此类表格内的节点存储在一个记录上，但节点仍拥有任意数量的子节点。表格可能包含更多描述节点属性的字段。

此前缀创建了一个扩展节点表格，通常其与输入的表格具有相同数目的记录，但除此之外， 所有层次结构级别均存储于单独的字段内。路径字段可以在树结构中使用。

输入表格通常只有一个节点记录，此时输出表格包含相同的记录数。但是，节点有时会带有多个父节点，即一个节点由输入表格中的几个记录表示。在此情况下，输出表格拥有的记录可能多于输入表格。

未见于节点 ID 列且具父级 ID 的所有节点均会被视为根节点。此外，仅带有根节点连接（直接或间接）的节点会被加载，因此可避免循环引用。

更多包含父节点名称，节点路径和节点深度的字段会被创建。

参数：

参数

| 参数 | 说明 |
| --- | --- |
| NodeID | 包含节点 ID 的字段名称。 此字段必须存在于输入表格中。 |
| ParentID | 包含父节点的节点 ID 的字段名称。 此字段必须存在于输入表格中。 |
| NodeName | 包含节点名称的字段名称。 此字段必须存在于输入表格中。 |
| ParentName | 即用于命名新建 ParentName 字段的字符串。如果省略，则无法创建此字段。 |
| ParentSource | 包含用于构建节点路径的节点名称的字段名称。可选参数。如果省略，则会使用 NodeName。 |
| PathName | 用于命名新建 Path 字段的字符串，该字段包含从根节点到节点的路径。可选参数。如果省略，则无法创建此字段。 |
| PathDelimiter | 在新建 Path 字段中用作分隔符的字符串。可选参数。如果省略，则会以 '/' 代替。 |
| Depth | 用于命名新建 Depth 字段的字符串，该字段包含层次结构中的节点深度。可选参数。如果省略，则无法创建此字段。 |

示例：

`Hierarchy(NodeID, ParentID, NodeName, ParentName, NodeName, PathName, '\', Depth) LOAD * inline [` `NodeID, ParentID, NodeName` `1, 4, London` `2, 3, Munich` `3, 5, Germany` `4, 5, UK` `5, , Europe` `];` ` `

| NodeID | ParentID | NodeName | NodeName1 | NodeName2 | NodeName3 | ParentName | PathName | Depth |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | 4 | London | Europe | UK | London | UK | Europe\UK\London | 3 |
| 2 | 3 | Munich | Europe | Germany | Munich | Germany | Europe\Germany\Munich | 3 |
| 3 | 5 | Germany | Europe | Germany | - | Europe | Europe\Germany | 2 |
| 4 | 5 | UK | Europe | UK | - | Europe | Europe\UK | 2 |
| 5 |  | Europe | Europe | - | - | - | Europe | 1 |

## 了解详情

* [Load](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [加载层次结构数据](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/DataSource/hierarchies.htm)