使用Sql Server 2016的OPENJSON函数从Json文档中的多个数组元素中选择结果

2023-12-30

是否可以在 Sql Server 2016 中将来自多个数组元素的 json 文档的部分组合成单个结果?

给定这个 json:

{
  "fruit": {
    "types": [
      {
        "possible": [ "Apples", "Bananas", "Pears" ],
        "category": "Basic"
      },
      {
        "possible": [ "Oranges", "Grapefruit", "Lemons", "Limes" ],
        "category": "Citrus"
      },
      {
        "possible": [ "Blueberries", "Strawberries", "Cherries" ],
        "category": "Berries"
      }
    ]
  }
}

我想查看可能元素中所有值的单个结果:

results
-----
Apples
Bananas
Pears
Oranges
Grapefruit
Lemons
Limes
Blueberries
Strawberries
Cherries

我已经接近这样做了:

SELECT * FROM OPENJSON(JSON_QUERY(@json, '$.fruit.types[0].possible'))
UNION
SELECT * FROM OPENJSON(JSON_QUERY(@json, '$.fruit.types[1].possible'))
UNION
SELECT * FROM OPENJSON(JSON_QUERY(@json, '$.fruit.types[2].possible'))

但这依赖于将查询与数组中的元素数量联系起来。 有没有一种方法可以做到这一点而不必单独指定每个数组元素?像这样的东西(这些都不是有效的表达式):

SELECT * FROM OPENJSON(JSON_QUERY(@json, '$.fruit.types[].possible'))

or

SELECT * FROM OPENJSON(JSON_QUERY(@json, '$.fruit.types.possible'))

这是我应该进行交叉申请的地方吗?


这是我应该进行交叉申请的地方吗?

Yep.

declare @json nvarchar(max)='
{
  "fruit": {
    "types": [
      {
        "possible": [ "Apples", "Bananas", "Pears" ],
        "category": "Basic"
      },
      {
        "possible": [ "Oranges", "Grapefruit", "Lemons", "Limes" ],
        "category": "Citrus"
      },
      {
        "possible": [ "Blueberries", "Strawberries", "Cherries" ],
        "category": "Berries"
      }
    ]
  }
}
'

select v.value
from openjson(@json, '$.fruit.types') t
cross apply openjson(t.value,'$.possible') v

outputs

value
---------
Apples
Bananas
Pears
Oranges
Grapefruit
Lemons
Limes
Blueberries
Strawberries
Cherries

(10 row(s) affected)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Sql Server 2016的OPENJSON函数从Json文档中的多个数组元素中选择结果 的相关文章

  • SQL Server 读提交隔离级别到底如何工作?

    恕我直言 我发现两个关于如何进行不一致的描述ReadCommitted有效 均在 MSDN 文档中 https msdn microsoft com en us library ms173763 aspx https msdn micros
  • SQL Server默认字符编码

    默认情况下 Microsoft SQL Server 中数据库的字符编码集是什么 如何查看 SQL Server 中当前的字符编码 编码 In most cases SQL Server stores Unicode data i e th
  • 在java中创建一个XML树并将其转换为json对象

    我尝试创建也能够转换为 json 的树 但对于只有一个xpath 当我尝试实现多个 xpath 时 我无法获得所需的输出 这里我分享一下我的实现 private static Document addElemtbypath List
  • SQL Server 中的每个实体自动增量字段?

    我的数据库中有一个稳定的 食物 主键为 fooD 我有第二个表 foo Attributes 其外键引用 foo fooD 我想在 fooAttributes 表上有一个组合键 fooID attributeNumber 当我插入新属性时
  • 在 swift 中发送自定义 HTTP 标头

    我设法从服务器获取 json 但现在我想通过 http 标头添加额外的安全性 这就是我的代码现在的样子 let urlPath http www xxxxxxxx com let url NSURL string urlPath let s
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 查询获取每条记录的最小日期[重复]

    这个问题在这里已经有答案了 我想获取表中每条记录的最小日期 该表具有多个带有一个主键的日期条目 看看我的桌子 CaseNo Entry date ABC 001 2 12 13 ABC 002 2 09 13 ABC 001 1 01 13
  • PowerShell JSON 添加值格式

    我正在向 json 文件添加数据 我这样做是通过 blockcvalue connectionString server localdb mssqllocaldb Integrated Security true Database data
  • 如何将表移动到 T-SQL 中的架构中

    我想使用 T SQL 将表移动到特定架构中 我正在使用 SQL Server 2008 ALTER SCHEMA TargetSchema TRANSFER SourceSchema TableName 如果你想搬家all表到一个新的模式
  • 未捕获的类型错误:未定义不是函数

    我收到消息Uncaught TypeError Undefined is not a function当我尝试调用家庭控制器中的方法时 也许关于我为什么收到此消息的建议 findIdpActivities function pernr ca
  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • 尝试在后台使用 AsyncTask 解析 JSON 时强制关闭

    我是 Android 开发新手 正在研究 json 数据 我设法让解析工作 我想显示一个 ProgressDialog 我读到我需要使用 AsyncTask 但由于某种原因 一旦我将相同的工作代码放入 doInBackground 中 即使
  • 使用来自Processing-JS的JSON

    我想使用编写一个应用程序处理 JS http processingjs org 并且我希望能够使用服务器端数据加载它 我还没有编写服务器端 所以我可以使用任何东西 但似乎明显的 AJAX 事情是使用 JSON 将数据上传到页面中 如何从我的
  • 了解 SQL Server 排序规则中的 Unicode 和代码页

    为什么所有 SQL Server 2008 R2 排序规则都与代码页相关联 所有排序规则都是 unicode 吗 当您的数据库被使用不同代码页的多种语言使用时 如何选择排序规则 谢谢 CHAR 与 NCHAR 即非 Unicode 与 Un
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • Jackson Kotlin - 反序列化 JsonNode

    Problem 我有字符串形式的 JSON 内容 我首先想用 Jackson 以编程方式遍历它 然后 当我有感兴趣的节点时 我想反序列化它 我尝试过的 我已使用 mapper readValue 成功反序列化字符串 但现在我想在 jsonN
  • INTEGER 到 DATETIME 的转换与 VB6 不同

    我正在查看一些遗留的 VB6 代码 比我的时代早很多年 它对 SQL 2005 数据库运行查询 它提供了日期限制WHERE子句 其中日期作为整数值给出CLng VB6 中的日期 e g WHERE SomeDateField gt 4006
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问
  • SSRS ReportViewer 与 XML 嵌入数据源相关的问题

    我有 C WPF 应用程序 我想在 ReportViewer 控件中显示 SSRS 报告 本地报告文件中嵌入了 XML 数据源 从 SQL Server Business Intelligence Development Studio 运行

随机推荐

  • 如何使用 Gmail API 检索电子邮件正文内容?

    我正在研究 Gmail API 假设我有兴趣查看哪封邮件包含字符串 foobar2000 到目前为止 这是我的代码 主程序 java package manhattan email bot import com google api cli
  • 自定义 Linq 订购

    我有一千多个文件夹 每个文件夹都包含一个或多个具有以下名称的文件 无序 Alison ext Heather ext Molly ext Paula ext Sam ext Ordered Molly ext Sam ext Heather
  • This.setstate 在回调中卸载

    这里真的很困惑 我更新到了 React Router 4 这需要一些更改 现在当我的注册表单在服务器端出现错误时 它会返回控制台错误 setState 只能更新已安装或正在安装的组件 这 通常意味着您在未安装的组件上调用了 setState
  • ckeditor angularjs指令:如何上传多个图像?

    我正在使用 ckeditor 指令 就像 在 Angular JS 中使用 CKEditor 内容更新 textarea 值 https stackoverflow com questions 18917262 updating texta
  • 如何延迟运行某些 JS 代码,直到下载完所有异步 JS 文件?

    UPDATE 我有以下代码
  • 如何使用console.readline()读取整数?

    我是一名正在学习 NET 的初学者 我尝试在控制台读取行中解析我的整数 但它显示格式异常 My code using System namespace inputoutput class Program static void Main s
  • 有没有办法在 Inno Setup 中读取系统信息

    有没有办法在安装过程中 仅在欢迎向导页面 读取 Inno Setup 中的系统信息 我的意思是 RAM OS CPU user IP MAC地址 如果知道的话那就太好了 我想将此信息放入一个文本文档中 并将其保存在计算机上 我似乎根本无法在
  • Ubuntu 16.04 上的 SQLite 和 JSON1

    是否有适用于 Linux Ubuntu 的 SQLite 发行版是使用 JSON1 扩展编译的 SQLite JSON1 页面上的说明仅解释了如何在编译后加载扩展 我想避免离题 Ubuntu Xenial 附带 SQLite3 11 0 1
  • Angular 2 with jasmine:带有注入服务的测试组件

    我无法为我的 Angular 2 项目创建一个简单的 jasmine 测试 这就是我想做的 要测试的组件 基于服务 Component providers AccountService selector account templateUr
  • 为什么ARM说“链接寄存器支持快速叶函数调用”

    我最近遇到了链接寄存器和叶函数的概念 我从之前的 SO 读中了解到 LR 告诉代码之前在执行期间的位置 我还知道叶函数是位于函数调用层次结构末尾的函数 The ARM 维基百科页面说 https en wikipedia org wiki
  • 更改 TextView 颜色

    如何更改单个 TextView 的 R G B TextView 没有亮度属性 它们的前景色和背景色使用 ARGB 值设置 例如 0xff000000 表示不透明的黑色背景 0xffffffff 表示不透明的白色前景 要增加亮度 只需将 R
  • 使用超过 30m 前更新的时间戳进行拉取的查询无法正常工作

    我绞尽脑汁试图解决这个问题 一切似乎都很顺利 但它并没有按照我的预期工作 我有一个索引test index并附有以下文件 index test index type testType id AV33b VYUyX1XZAq7NTI scor
  • 使用 CSS 和 jQuery 的动态、表格式列表项行

    我有一个内容项列表 每个内容项都有设定的宽度但不同 可变 的高度 列表中的每个项目都会向左浮动 HTML 和 CSS 如下 ul li h3 Item One h3 img src one png p First item content
  • 开发人员应该提交 Go 生成的代码吗?

    我使用代码生成器插件根据 OpenAPI 规范生成服务器存根 我想知道是否应该将生成的代码提交给版本控制 一般来说 是的 推理很简单 如果我是您代码的下游用户 也就是说 我只想将您的库作为依赖项包含在内或构建您的应用程序 那么构建您的代码就
  • 使用 vb.net 将表脚本编写为 CREATE TO

    在 SQL Server 中 我可以创建一个与另一个表重复的表 并在其中设置所有约束 我可以在 SQL Server Management Studio 中使用脚本表作为 CREATE TO 来执行此操作 然后我可以在另一个数据库中运行该脚
  • Smalltalk ReferenceStream 对新实例变量有问题吗?

    在 Pharo Smalltalk 中 我使用 ReferenceStream 序列化对象列表 这是我要序列化的对象的类定义 Object subclass Task instanceVariableNames title notes li
  • 整合银行账户[已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何 API 可以将银行帐户集成到 NET 应用程序中 我希望为用户提供将银行对账单提取到我的软件
  • 动态铸造?

    我需要一种方法将对象转换为编译时未知的类型 像这样的东西 object obj public type of obj Obj get return obj set obj type of obj value 唯一知道的是 obj 是一个值类
  • 远程 Glassfish v4.1 部署上出现 TimeoutException

    我在 OVH 上有 VPS 假设它是 vpsXXXX ovh net 使用 Debian 7 我已经安装了 Java 8 Glassfish 4 1 并启用了安全管理 asadmin gt change admin password use
  • 使用Sql Server 2016的OPENJSON函数从Json文档中的多个数组元素中选择结果

    是否可以在 Sql Server 2016 中将来自多个数组元素的 json 文档的部分组合成单个结果 给定这个 json fruit types possible Apples Bananas Pears category Basic p