小编Nur*_*ely的帖子

在拆分层次结构中查找丢失的文件夹路径

我有一个包含文件夹路径的表。该表包含四列:

  • 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)

注释:

  1. 该表包含超过250,000条文件夹的记录,因此我们寻求最有效的方法来执行此操作,否则脚本将卡住很长时间,我们没有时间。 …

performance sql-server hierarchy sql-server-2012 query-performance

5
推荐指数
1
解决办法
234
查看次数