# Hierarchy

hierarchy 前置詞用來將上下層式階層表格轉換為可以在 Qlik Sense 資料模型中使用的表格。它可以放在 LOAD 或 SELECT 陳述式的前面，而且將使用載入陳述式的結果做為表格轉換的輸入。

此前置詞會建立展開的節點表格，這一般會有與輸入表格相同的記錄數，不過除此之外階層中的各個層級會儲存在個別的欄位中。路徑欄位可以在樹狀結構中使用。

語法：

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

此輸入表格必須是相鄰節點表格。相鄰節點表格是各個記錄對應於一個節點的表格，其中有欄位包含上層節點的參考。在這類表格中，節點僅儲存在一筆記錄內，但是節點仍可有任何數目的子節點。當然，表格可包含其他用來描述節點屬性的欄位。

此前置詞會建立展開的節點表格，這一般會有與輸入表格相同的記錄數，不過除此之外階層中的各個層級會儲存在個別的欄位中。路徑欄位可以在樹狀結構中使用。

輸入表格通常對於各個節點只有一筆記錄，因此，輸出表格將包含相同筆數的記錄。不過，有時候節點會有多個上層節點，也就是一個節點由輸入表格中的多筆記錄表示。若是如此，輸出表格的記錄會比輸入表格多。

上層識別碼不在節點資料行中的所有節點 (包括遺失上層識別碼的節點) 將被視為根節點。另外，只有直接或間接連線到根節點的節點才會載入，以避免循環參照。

可建立包含上層節點名稱、節點路徑和節點深度的其他欄位。

引數：

引數

| 引數 | 描述 |
| --- | --- |
| NodeID | 包含節點識別碼的欄位名稱。 此欄位必須存在於輸入表格中。 |
| ParentID | 包含上層節點識別碼的欄位名稱。 此欄位必須存在於輸入表格中。 |
| 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-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [載入階層資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/hierarchies.htm)