Table Hierarchy Closure 步骤
表:层次结构闭包 步骤会沿父级链向上遍历每一行,并为每一行及其每个祖先写入一个输出行。没有深度限制。距离列对行本身为 0,对其父级为 1,依此类推。
遍历会在根节点、节点表中不存在的父级,或已经遇到过的节点处停止,因此父级 ID 中的循环不会无限运行。出现循环时,会保留直到重复节点为止的所有祖先。没有任何根节点可到达的循环,会在其最小 ID 处结束。
- 遍历起点行:起始遍历的行所在的表。
- ID 列 和 父级列:每一行的 ID 及其父级的 ID。NULL 或该行自身的 ID 表示根节点。
- 节点表 (可选):遍历向上攀升所依据的节点表。留空则使用源表。
- 节点 ID 列 和 节点父级列 (可选):默认为 ID 列和父级列。具有多行的 ID 会优先沿用根节点行,否则沿用其最小的父级。
- 祖先列:保存祖先 ID 的输出列。默认为
Ancestor。 - 距离列:与起始行相距的步数。默认为
Distance。 - 沿路径构建的字符串 (可选):遍历向上攀升时要累积的每个文本列对应一行。每行包含:
- 输出列:新列。
- 源列:作为文本读取的列;如果节点表中的列不同,则使用 节点列 从节点表读取。
- 分隔符:值之间的文本。
- 非重复:跳过文本中已有的值。
- 根在前:将每个祖先放在目前已有文本之前。
- 输出表:写入结果的位置。
输出包含 ID 列和父级列、祖先列和距离列,以及您构建的每个字符串对应的一个文本列。