我有一个包含文件夹路径的表。该表包含四列:
DirID - 文件夹的 ID。BaseDirID- 层次结构中第一个文件夹的 ID。因此,来自同一层次结构的所有文件夹(路径)在此列中共享相同的值。DirLevel - 文件夹的深度。DisplayPath - 文件夹的路径。我需要找到层次结构中这些文件夹之间的所有“差距”。
示例数据例如:
DirID BaseDirID DirLevel DisplayPath
1 1 1 'A'
2 1 3 'A\B\C'
3 1 5 'A\B\C\D\E'
4 1 3 'A\B\F'
5 1 5 'A\B\F\G\H'
6 2 1 'U'
7 2 3 'U\V\W'
8 2 5 'U\V\W\X\Y'
9 2 3 'U\V\M'
10 2 5 'U\V\M\L\O'
Run Code Online (Sandbox Code Playgroud)
所以我们需要找到以下数据:
BaseDirID DisplayPath
1 'A\B'
1 'A\B\C\D'
1 'A\B\F\G'
2 'U\V'
2 'U\V\W\X'
2 'U\V\M\L'
Run Code Online (Sandbox Code Playgroud)
注释:
performance sql-server hierarchy sql-server-2012 query-performance