SQL Server 2016新特性: 对JSON的支持

2023-05-16

SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型、XML索引及各种管理或输出XML格式的函数。随着JSON的流行,SQL Server2016开始支持JSON数据类型,不仅可以直接输出JSON格式的结果集,还能读取JSON格式的数据。对于有用到JSON格式的应用程式来说,这无疑是一利器,因为不再需要使用JSON.Net这类工具进行分析和处理JSON数据,直接利用SQL Server内置函数就可以处理,轻松将查询结果输出为JSON格式,或者搜索JSON文件内容。下面通过实例的方式,展现SQL Server 2016这一新功能。

 

 

 

下面是我们熟悉的SELECT及输出格式,后面对JSON的演示基于此SQL:

 

 

 

一、  将查询结果输出JSON格式

1 要将SELECT语句的结果以JSON输出,最简单的方法是在后面加上FOR JSON AUTO:

 

2 若要为FOR JSON加上Root Key,可以用ROOT选项来自定义ROOT Key的名称:

 

 

若要自定义输出JSON格式的结构是,必须使用JSONPATH。若SELECT的列中,存在列名名称相同时,必须用别名重命名才能正常查询,否则会报类似下面错误提示:

 

3  JSON PATH输出:

 

 

4  JSONPATH+ROOT输出:

5 为NULL的数据在输出JSON时,会被忽略,若想要让NULL的字段也显示出来,可以加上选项INCLUDE_NULL_VALUES,该选项也适用于AUTO。

 

6 带有层级关系的,可以增加节点,比如下面的SQL,增加了一个“SN”节点,把栏位SERNUM和CLIMAT放在里面:

 

二、  解析JSON格式的数据

1 使用OPENJSON()函数:

 

2 通过WITH选项,自定义输出列:

 

 

 

 

转载来源:https://blog.csdn.net/Burgess_Liu/article/details/51557331

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

SQL Server 2016新特性: 对JSON的支持 的相关文章

  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR
  • 在没有 NAN 的情况下将 pandas DF 转换为 JSON

    我有一个 DF 看起来像 A B C D E 1 1 NaN 1 1 NaN 2 3 4 NaN 当我做 df to json orient records 我得到类似的东西 A 1 B 1 C null D 1 E 1 A null B
  • 在 iOS 中发送音频文件和 JSON 字符串

    我正在尝试将音频文件和 JSON 字符串发送到 PHP 服务器 使用以下代码将发送 JSON 但文件到达时为空 如果我将 JSON 块放在音频块下方 文件将完全到达 但 JSON 为空 有什么想法吗 void sendFile NSStri
  • JDBC 和多线程

    我正在尝试使用多线程方法运行一些查询 但是我认为我做错了什么 因为我的程序需要大约五分钟来运行一个简单的选择语句 例如 SELECT FROM TABLE WHERE ID 123 我的实现如下 我使用一个连接对象 在我的运行方法中 pub
  • 如何使用 Objective-C 解析 JSON?

    我是 iPhone 新手 谁能告诉我解析此数据并获取活动详细信息 名字和姓氏的步骤 error false data activity id 35336 user id 1 user first name Chandra Bhusan us
  • SQL Server:应用正则表达式替换

    这是我的 SQL 查询 select codi nivell from anc documents 示例数据是 06080100000000 06080100000000 06080100000000 06080100000000 0608
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • 查询和扫描多行性能缓慢

    下面的查询一行的执行时间为 6 18 分钟 Exception type 1 的基数值为 3 我不知道如何提高性能 Query select count 1 as rage tap from summary funnel 1066 s jo
  • Oracle SQL 分析查询 - 类似递归电子表格的运行总计

    我有以下数据 由A值 排序依据MM 月 The B列计算为GREATEST current value of A previous value of B 0 以类似电子表格的方式 我怎样才能计算B使用 SQL 查询 我尝试使用分析函数 但未
  • 在 MySQL 中将值设置为 NULL

    我想要一个值被设置为NULL如果我提交的表单中的文本框中没有输入任何内容 我怎样才能做到这一点 我试过插入 NULL 但这只是添加了这个词NULL进入现场 我不确定我应该为此提供什么代码 我只是编写一个 UPDATE 查询 不要放NULL更
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 同一表中同一列的 SQL 完全外连接

    这可能更多的是一个设计问题 但我希望这在没有太多巫术的情况下是可能的 假设我有一个这样的表 SELECT FROM stuff id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想要得到这样的东西 ID 按列分组 a id b
  • 如何创建从表中最大值开始的 Oracle 序列?

    尝试在 Oracle 中创建一个以特定表中的最大值开始的序列 为什么这不起作用 CREATE SEQUENCE transaction sequence MINVALUE 0 START WITH SELECT MAX trans seq

随机推荐

  • rust语言orbtk GUI基础(old2018)-3.1 orbtk基础控件

    orbtk的api在2019 2进行了修改 xff0c 该文章为2018版 新版请转 新版orbtk gui基础 rust orbtk基础widgets orbtk基础控件demoorbtk控件使用方法orbtk控件原理创建控件为控件添加子
  • rust语言Orbtk GUI库-3.orbtk 控件简介

    2019 9 updated orbtk支持的控件还不是很多 xff0c 目前orbtk内置的控件主要有 xff1a 基础控件 TextBlock xff1a 显示文本 xff0c 不可编辑 xff0c 不可交互TextBox xff1a
  • rust语言Orbtk GUI库-3.1 orbtk基础控件

    orbtk基础控件demo orbtk目前内置的基础控件包括 xff1a TextBlockTextBoxButtonToggleButtoncheck boxSwitchFontIconBlockImageWidgetWaterMarkT
  • SQL - 将查询结果插入到另一张表中

    一 INSERT INTO 注意 xff1a 字段必须一致 xff08 位置一致 xff0c 类型一致 xff09 xff0c 否则会出现数据转换错误 1 字段一致 INSERT INTO 目标表 SELECT FROM 来源表 WHERE
  • Ubuntu18.04设置在开机时自动链接蓝牙键盘

    简介 系统升级到Ubuntu18 04时 xff0c 启动后蓝牙键盘不能自动连接 xff0c 需要虚拟键盘登录后手动连接蓝牙键盘后 xff0c 才能正常使用 如何在开机时自动链接键盘 xff1f 查找蓝牙键盘的Address地址 在Sett
  • iOS scrollview touchbegin

    1 开篇 最近在项目中遇到一个 需求就是在一个可以左右拨动的页面上 xff0c 添加一些交互功能 xff0c 比如说点击某个页面会有文字变化 xff0c 图片变换 xff0c 最后有比较特殊的需求是做个像slider功能的可以拖动的按钮 x
  • 大数据毕业设计 - 选题推荐(一)

    文章目录 1 开题指导1 1 起因1 2 如何避坑 重中之重 1 3 为什么这么说呢 xff1f 1 4 难度把控1 5 题目名称1 6 最后 选题建议3 最后 毕设帮助 xff0c 开题指导 xff0c 资料分享 xff0c 疑问解答 见
  • 大数据毕设题目推荐 - 最新大数据毕设选题 - 毕业设计项目方向课题

    文章目录 0 前言1 如何选题1 1 选题技巧 xff1a 如何避坑 重中之重 1 2 为什么这么说呢 xff1f 1 3 难度把控1 4 题目名称1 5 最后 2 大数据 选题推荐2 1 大数据挖掘类2 2 大数据处理 云计算 区块链 毕
  • 解决OAth2.0的授权token放在header中,导致文件下载验证失效的问题

    1 项目背景 项目是采用微服务架构 xff0c 使用spring gateway作为网关 xff0c 统一做校验权限 2 问题 OAth2 0的授权token是放在请求头Authorization中的 xff0c 如果使用浏览器直接下载文件
  • 大数据毕业设计选题推荐(二)

    文章目录 0 前言1 大数据相关题目2 开题指导2 1 起因2 2 如何避坑 重中之重 2 3 为什么这么说呢 xff1f 2 4 难度把控2 5 题目名称 3 最后 0 前言 这是学长亲手整理的 xff0c 大数据毕设选题系列第二篇 xf
  • 【C语言程序设计】日期函数,日期处理函数!

    定义一个表示日期的结构体类型 xff0c 再分别定义函数完成下列功能 xff1a 计算某一天是对应年的第几天 xff0c 这一年一共多少天 xff1b 计算两个日期之间相隔的天数 两个日期由键盘输入 算法思想 设定结构体类型表示日期类型名为
  • 关于ArchLinux系统中某些软件无法输入中文的问题

    1 检查是否安装语言支持 P S 这个是可选操作 xff0c 可跳过 一般安装的时候都会选安装中文 xff0c 如果不确定 xff0c 最好检查一下 首先检查一下语言设置 span class token function sudo spa
  • Windows Python 命令行如何退出

    在使用 Python 命令行工具的时候 xff0c 我们发现通常使用的 Ctrl 43 C 没有办法退出界面 例如 xff0c 下图所示 xff0c 当我们从键盘上输出 Ctrl 43 C 还是没有办法退出 解决方法 可以通过键盘上输入 C
  • Node 的 cross-env 模块

    cross env 是运行跨平台设置的和使用环境变量 xff08 Node中的环境变量 xff09 的脚本 一句话来说明 cross env xff0c 就是针对相同的语句和命令 xff0c 我们希望这条语句能够同时在 Windows 和
  • 如何从 Java 的 List 中删除第一个元素

    概述 在这个实例中 xff0c 我们将会演示如何删除在 Java 中定义的 List 的第 1 个元素 我们将会针对这个问题使用 List 接口的 2 个实现 ArrayList 和 LinkedList 来进行演示 创建一个 List 首
  • 史上最详细----阿里云创建ECS实例教程(每一步图文结合)

    进入阿里云官网 xff0c 登录账号 进入控制台页面 打开侧边导航栏 xff0c 进入云服务器ECS页面 点击创建实例 进入到这个页面 xff08 我这里为了方便演示 xff0c 用的是旧版的页面 xff09 选择付费模式和可用区 选择配置
  • 使用python的opencv和tesseract库来识别图片中指定区域的中文

    使用python的opencv和tesseract库来识别图片中指定区域的中文 需求说明 图片中包含大量中文 xff0c tesseract全图识别是逐行识别的 xff0c 无法得出满意的结果 xff0c 需要识别指定区域的中文 实现方案
  • 7-5 判断回文 栈实现

    回文是指正读反读均相同的字符序列 xff0c 如 abba 和 abdba 均是回文 xff0c 但 good 不是回文 试写一个程序判定给定的字符向量是否为回文 xff0c 用栈实现 提示 xff1a 将一半字符入栈 输入格式 输入任意字
  • antd design国际化配置为中文时,日期组件中月与星期显示为英文,其他显示为中文

    antd design国际化具体配置见官网 https ant design components locale provider cn 主要代码 xff1a import LocaleProvider from 39 antd 39 im
  • SQL Server 2016新特性: 对JSON的支持

    SQL Server 2005开始支持XML数据类型 xff0c 提供原生的XML数据类型 XML索引及各种管理或输出XML格式的函数 随着JSON的流行 xff0c SQL Server2016开始支持JSON数据类型 xff0c 不仅可