跳到主要内容

Hierarchy

在该页面上

Hierarchy

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

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

Syntax:  

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

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

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

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

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

Arguments:  

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

Example:  

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

];

结果:

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