相关疑难解决方法(0)

从 JSON 中查找祖先

我有一个看起来像这样的层次结构:

在此处输入图片说明

作为 TSQL 中的 JSON,它是这样的:

declare @Employees nvarchar(max) =
'{
  "person": "Amy",
  "staff": [
    { "person": "Bill" },
    {
      "person": "Chris",
      "staff": [
        { "person": "Dan" },
        { "person": "Emma" }
      ]
    }
  ]
}';
Run Code Online (Sandbox Code Playgroud)

这只是一个例子。实际数据可以是任何深度或广度不确定的树。

发现文档和所有示例都显示了自上而下的遍历。每个 JSON 路径都从根节点开始,并通过已知的节点名称导航到所需的节点。我没有发现从层次结构中的不确定深度开始并向上工作。我觉得我需要像传递闭包这样的东西。

给定一个名字,我想获得该名字的血统。例如,给定“Emma”,结果将是“Emma / Chris / Amy”。给定“比尔”,答案将是“比尔/艾米”。输出格式不重要;它可以是 JSON、字符串或结果集。名字是独一无二的。

这是对我自己的学习练习。只要它仍然是 JSONy,就可以将原始 JSON 表示更改为任何等效的内容。层次结构的邻接列表表示上的 JSON_QUERY 无法实现我的目标。

sql-server t-sql json

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

标签 统计

json ×1

sql-server ×1

t-sql ×1