我有一个表,其中包含对象的标识符和其父母的标识符。它用于保存以树的形式呈现的数据对象。我想查询表以构建树中对象的完整路径。树的最大深度可能永远不会超过 20 个对象。有没有办法在没有while循环的情况下做到这一点......或者是否值得尝试避免这种类型/大小的工作的while循环。
该表如下所示:
创建表 [dbo].[tblObj] ( [ObjectId] [int] 非空, [对象名] [nvarchar](50) 非空, [ParentId] [int] NULL, )
有这样的数据
插入 tblObj (ObjectId, ObjectName) 值 (1, 'Root') 插入 tblObj (ObjectId, ObjectName, ParentId) 值 (2, 'Middle1', 1) 插入 tblObj (ObjectId, ObjectName, ParentId) 值 (3, 'Middle2', 2) 插入 tblObj (ObjectId, ObjectName, ParentId) 值 (4, 'Leaf', 3)
期望的结果是使用对象/父关系来构建一个包含反映完整路径的对象名称的字符串。上面的数据将导致路径“Root\Middle1\Middle2\Leaf”