T-SQL JSON:如何在 JSON 数组中搜索值

2023-12-09

我们正在使用 Azure SQL,并有一个名为 Companies 的表,其中一列包含 JSON。 JSON 字段的结构为:

{
  "DepartmentLink": "https://company.com",
  "ContactName": "John Doe",
  "ContactTitle": "CEO",
  "ContactEmail": "[email protected]",
  "ContactPhone": "xx xx xx xx xx",
  "ContactImage": "https://company.com/xyz.jpg",
  "ZipCodes": [
    "7000",
    "7007",
    "7017",
    "7018",
    "7029"
  ]
}

表的结构如下所示

[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NULL,
[JsonString] [nvarchar](max) NULL,
-- other fields --

其中 [JsonString] 具有以下结构:

{
  "DepartmentLink": "https://company.com",
  "ContactName": "John Doe",
  "ContactTitle": "CEO",
  "ContactEmail": "[email protected]",
  "ContactPhone": "xx xx xx xx xx",
  "ContactImage": "https://company.com/xyz.jpg",
  "ZipCodes": [
    "7000",
    "7007",
    "7017",
    "7018",
    "7029"
  ]
}

给定一个邮政编码,例如7018 我需要找到在 Json Array ZipCodes 中具有此 ZipCode 的公司 - 并从记录中返回元素(这些元素都作为普通“字段”出现 - 所以我不需要返回 JSON。)。

我在寻找如何执行此操作时遇到问题。有什么建议么?我对 SQL 中的 JSON 很陌生。


use OPENJSON and CROSS APPLY粉碎邮政编码数组,然后添加WHERE子句与您的过滤器类似,如下所示:

SELECT *, JSON_VALUE( yourJSON, '$.DepartmentLink' ) AS DepartmentLink
FROM dbo.Companies 
    CROSS APPLY OPENJSON( yourJSON, '$.ZipCodes') x
WHERE x.value = '7000';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

T-SQL JSON:如何在 JSON 数组中搜索值 的相关文章

  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 将表数据从一个 SQL Server 导出到另一台 SQL Server

    我有两个 SQL Server 都是 2005 版本 我想将多个表从一个表迁移到另一个表 我努力了 在源服务器上 我右键单击数据库 选择Tasks Generate scripts 问题是在下面Table View options没有Scr
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • 如何在NiFi中映射流文件中的列数据?

    我有 csv 文件 其结构如下 Alfreds Centro Ernst Island Bacchus Germany Mexico Austria UK Canada 01 02 03 04 05 现在我必须将这些数据移入数据库 如下所示
  • 如何从 SQL Server 存储过程返回值并在 Access VBA 中使用它们

    我已经在 SQL Server 中设置了一个运行良好的存储过程 我现在可以从 VBA 调用它 但想返回一个值以了解是否存在任何错误等 我的 SP 中的最后一个参数设置为 OUTPUT DataSetID int 0 Destination
  • 同时使用 GUID 和自动递增整数

    我一直在研究使用 GUID 作为数据库中的主键 到目前为止 利似乎大于弊 然而 我发现 GUID 可能不是我想要的 在我的应用程序中 用户应该能够根据用户友好的 ID 来识别对象 因此 例如 如果他们想要获取特定产品而不输入全名 则可以使用
  • 无法使用 Tedious 和 Node JS 连接到本地 SQL Server 数据库

    我正在尝试连接到本地计算机上的 SQL Server 我正在尝试使用乏味和乏味 ntlm 两者的配置如下 var tds require tedious ntlm var tds require tedious var config use
  • “作为自身执行”与跨数据库视图

    SQL Server 2016 数据库中有一个视图A从另一个数据库中的表中进行选择 B use A go create view TheView as select from B dbo SomeTable 我有 dbo 访问权限B数据库
  • SQL Server:从 OPENDATASOURCE 中删除

    这有效 SELECT FROM OPENDATASOURCE Microsoft ACE OLEDB 12 0 Data Source d JobFiles MyFile xlsx Extended properties Excel 8 0
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • SQL返回两行之间的秒差

    这个问题与SQL Server有关 我有下表 id size batch code product code additiontime 1 91 55555 BigD Red 2017 05 15 13 00 00 2 91 55555 B
  • 弹簧隔离支持吗? SQL快照隔离

    我们正在使用 SQL Server 快照隔离可能是提高性能和解决一些死锁问题的好方法 假设我们确实需要更改为快照隔离 我似乎找不到一种简单的方法来在 Springs 上启用快照隔离 Transactional 我发现以下 hibernate
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 想要编写依赖于 SQL Server 表的所有对象的脚本

    查看依赖关系 显示依赖于 SQL Server 中的表的所有对象 现在 我如何使用 SSMS 在一个命令中编写所有这些对象的脚本 有没有免费的工具可以做到这一点 首先你可以尝试这个链接了解 SQL 依赖关系 http msdn micros
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • 如何在 Javascript 中获取 pdf 中选定的文本?

    我正在编写一个 Chrome 扩展来操作 pdf 文件 所以我想获取 pdf 中选定的文本 我怎样才能做到这一点 像这样的东西 您可以使用内部未记录的命令内置 PDF 查看器 以下是内容脚本的示例 function getPdfSelect
  • 如何判断两个向量之间的角度是外角还是内角?

    我知道如何找出两个向量之间的角度 但它总是给我内角 但我希望它总是给我逆时针方向的角度 即使它大于 180 度 我正在使用 C 但这并不重要 因为我需要了解理论 This is what I am using now 您正在寻找atan2
  • 使用 Powershell 自动执行 IE 确认提示

    我有一个很好的 powershell 脚本 可以为我女儿自动创建一个特定的网站 最近他们更改了网站并添加了一个不错的新功能 可以将我的脚本速度提高 10 倍 问题是他们用来激活此功能的输入类型会弹出一个确认对话框 HTML 看起来像这样
  • Swagger:<字符串,对象> 的映射

    我需要使用 Swagger 记录一个 API 该 API 使用对象映射作为输入和输出 并通过字符串键进行索引 Example a property foo property 1 a string 1 property 2 a string
  • 如何探索和修改从 tf.keras.preprocessing.image_dataset_from_directory() 创建的数据集?

    这是我使用该函数的方式 dataset tf keras preprocessing image dataset from directory main directory labels inferred image size 299 29
  • 范围从开始>结束

    for x in line x1 line x2 这不适用于以下情况x1 gt x2 所以我使用这个解决方法 for x in cmp min line x1 line x2 cmp max line x1 line x2 这很好 直到我需
  • 审核日志删除的最佳方法是什么?

    连接字符串上的用户 ID 不是变量 并且与程序的用户 ID 例如可以是 GUID 不同 如果连接字符串的用户 ID 是静态的 如何审核日志删除 记录插入 更新 删除的最佳位置是通过触发器 但是使用静态连接字符串 很难记录谁删除了某些内容 还
  • 函数应以字节切片形式返回 sha256/sha384/sha512 结果

    我正在编写一个函数 它将输入数据作为字符串以及要调用的 SHA 算法的位大小 它应该将生成的哈希值作为字节切片返回 第一次尝试 package main import crypto sha256 crypto sha512 errors f
  • Outlook VBA 将电子邮件从子文件夹导入 Excel

    我正在尝试将收件箱中每封电子邮件的详细信息 发件人 接收时间 主题等 导入到 Excel 文件中 我的代码适用于收件箱中的特定文件夹 但我的收件箱有几个子文件夹 并且这些子文件夹也有子文件夹 经过多次尝试和错误 我成功导入了收件箱下所有子文
  • 使用 JNA User32 平台图的 NoSuchMethodError

    我在第一次尝试使用 User32 Instance 时收到以下错误 线程 main 中的异常 java lang NoSuchMethodError com sun jna Native load Ljava lang String Lja
  • 循环遍历表单上所有未绑定的控件并清除数据

    我想循环遍历表单上的所有 UNBOUND 控件并清除它们的数据或重置它们的值 我有文本框 组合框和复选框 每次我尝试这样的事情 Dim ctl As Control For Each ctl In Me Controls If IsNull
  • FPDF - 在多单元中写入HTML?

    WriteHTML可以放在Multicell中吗 如何 我检索并显示了数据库中的 HTML 输出 但想将其放置在第二列中 比方说 因此我将其放入 Multicell 中 但没有效果 下面不起作用 pdf gt Multicell 70 3
  • 这个带有逗号的 CSS 选择器到底匹配什么?

    我有一个关于 CSS 选择器的问题 在我的 CSS 文件中 我有以下代码 table legenda th td text align left vertical align top font weight bold color 76818
  • 在 Windows Phone 中打开 PDF 文件

    我正在开发一个适用于 Windows Phone 7 的应用程序 并为其使用 Phonegap 模板 一切看起来都很完美 但现在我无法在浏览器中打开 PDF 文件 我尝试了以下方法 但不起作用 因为 PDF 的 url 超出了 2048 个
  • 在 postgresql 中将日期转换为整数

    我正在尝试将日期 日期类型 转换为 int 这个 int 应该类似于自 1900 年 1 月 1 日以来的天数 如何在 postgresql 中获取它 在 Excel 中 当我将日期与字符串连接时 我会自动获取此信息 示例 2011 11
  • RequireJS:回调函数中的依赖项和参数的数量不同

    我有遗留代码和这样的模块定义 define a b c d function a b c 您可以看到 依赖项比我们在模块中使用的实际参数多 这有什么意义吗 我认为模块 d 是多余的 这仅意味着模块 d 或者更准确地说 调用 d 工厂函数的结
  • 使用 shell_exec 从 PHP 中调用 Python

    我的默认 Web 应用程序基于 PHP 不过 为了简单起见 我构建了一个 python 脚本来进行一些分析 现在我需要 php 来调用 python 代码并检索 python 代码提供的输出 这两个文件位于同一服务器中 但不在同一文件夹中
  • 使用 重定向

    以下行应保存新项目并重定向到另一个页面 到目前为止 它保存正确 但没有重定向 没有错误或警告
  • WP7中如何改变点击时按钮的颜色?

    在WP7中 每当单击按钮时 按钮的背景就会变成白色 表明该按钮被单击 并在释放鼠标按钮时变得正常 但是我想将按钮选择的颜色从白色更改为橙 色 我该如何点呢 你将不得不玩Visual States那个Button控制 以下是默认样式Butto
  • T-SQL JSON:如何在 JSON 数组中搜索值

    我们正在使用 Azure SQL 并有一个名为 Companies 的表 其中一列包含 JSON JSON 字段的结构为 DepartmentLink https company com ContactName John Doe Conta