首页 > 数据库 >sql server Json简单操作

sql server Json简单操作

时间:2023-05-22 10:55:06浏览次数:38  
标签:OPENJSON JSON server Json json1 sql data id SELECT

操作环境:

SQL Server Management Studio 15.0.18424.0
SQL Server 管理对象 (SMO) 16.100.47021.0+7eef34a564af48c5b0cf0d617a65fd77f06c3eb1
Microsoft Analysis Services 客户端工具 15.0.19750.0
Microsoft 数据访问组件 (MDAC) 10.0.19041.2604
Microsoft MSXML 3.0 5.0 6.0
Microsoft .NET Framework 4.0.30319.42000
操作系统 10.0.19044


DECLARE @json1 NVARCHAR(500)='[ { "id": 1, "data": [ { "testid": 1, "testdata": "data1" } ] }, { "id": 2, "data": [ { "testid": 1, "testdata": "data1" } ] } ]' DECLARE @newjson NVARCHAR(500)='{ "id": 3, "data": [ { "testid": 1, "testdata": "data1" }, { "testid": 2, "testdata": "data2" } ] }' DECLARE @json2 NVARCHAR(500)='[ { "id": 4, "data": [ { "testid": 1, "testdata": "data1" } ] }, { "id": 5, "data": [ { "testid": 1, "testdata": "data1" } ] } ]' --获取json中第一个对象的字段值 select JSON_Value(@json1,'$[0].id') --根据条件获取想要的字段值 SELECT JSON_VALUE([value],'$.id') as id FROM OPENJSON(@json1,'$') WHERE JSON_VALUE([value],'$.id') ='1' SELECT JSON_VALUE([value],'$.id') as id FROM OPENJSON(@json1,'$') WHERE JSON_VALUE([value],'$.id') in('1','2') ----获取字符串格式字段值使用JSON_VALUE SELECT JSON_VALUE([value],'$.id') as id FROM OPENJSON(@json1,'$') --与上面一样的结果 SELECT * FROM OPENJSON(@json1) WITH(id int) --获取json格式字段值需要使用JSON_QUERY SELECT JSON_QUERY([value],'$.data') as id FROM OPENJSON(@json1,'$') WHERE JSON_VALUE([value],'$.id') in('1','2') --json转table,data字段值需要转为json格式,否则数据为null SELECT * FROM OPENJSON(@json1) WITH(id int,[data] NVARCHAR(max) ) SELECT * FROM OPENJSON(@json1) WITH(id int,[data] NVARCHAR(max) '$.data' AS JSON) ----JSON数组增加单个json对象 SELECT @json1 = JSON_MODIFY(@json1,'append $',JSON_QUERY(@newjson)) SELECT @json1 ----合并两个JSON数组 SELECT @json1 = JSON_MODIFY(@json1,'append $',JSON_QUERY([value])) FROM OPENJSON(@json2) SELECT @json1 --修改数据1 set @json1 = JSON_MODIFY(@json1,'$[0].data[0].testdata','newdata') SELECT @json1 --修改数据2 set @json1 = JSON_MODIFY(@json1,'$[0].data','[]') SELECT @json1

  

标签:OPENJSON,JSON,server,Json,json1,sql,data,id,SELECT
From: https://www.cnblogs.com/bingshao/p/17420038.html

相关文章

  • nginx+tomcat+pgsql+redis离线部署过程
    gccpcre-developenssl-develzlib-devel离线安装包:包含云盘地址.txt离线部署java+nginx+tomcat+pgsql+redis.zip:城通网盘:https://url86.ctfile.com/f/15666686-859830438-baa3a9?p=2048(访问密码:2048)阿里云网盘(城通速度慢可以选这个):https://www.aliyundrive......
  • 批量执行mysql文件
    mysqldumpMysql数据备份恢复目录mysqldumpMysql数据备份恢复一、需求二、Java实现Mysql备份与恢复pom.xmlmainMysqlBackupsMysqlReductionConfPropresources执行一、需求实现Mysql数据库备份与恢复/***mysqldump命令*备份库*备份所有数据库:mysqldump-h主机IP......
  • 遇到的问题之"数据库编写SQL-》子查询中加入limit报错:This version of MySQL doesn't
    一、问题 >1235-ThisversionofMySQLdoesn'tyetsupport'LIMIT&IN/ALL/ANY/SOMEsubquery'二、原因/解决方案这个错误通常是由于MySQL版本太旧导致的。在旧版本的MySQL中,无法在子查询中使用LIMIT和IN/ALL/ANY/SOME子查询。您需要升级到MySQL的较新版本,以解决......
  • 使用docker安装postgresql
    在Docker中安装PostgreSQL的详细步骤:首先,确保你已经安装了Docker。如果没有,请按照Docker官方文档的说明进行安装。打开终端并输入以下命令来搜索PostgreSQL映像:dockersearchpostgres选择一个适合你需要的映像并使用以下命令下载它:dockerpull[postgres-image-name]其中......
  • sqlserver 查询慢语句
    SELECTTOP10total_worker_time/1000AS[自编译以来执行所用的CPU时间总量(ms-毫秒)],total_elapsed_time/1000as[完成执行此计划所用的总时间],total_elapsed_time/execution_count/1000as[平均完成执行此计划所用时间],execution_countas[上次编译以来所执行......
  • Python直连MySQL数据库
        Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoftSQLServer2000InformixInterbaseOracleSybase你可以访问Pytho......
  • APNs(Apple Push Notification server)服务器代码C#编写
    PushNotification使用最简单的方式通过APNs发送通知,本库使用C#写的服务器端代码,C/Objective-C客户端代码原地址Github地址APNs概述Apple推送通知服务,是一个稳健性和高效率性的远程通知,具有中心化的特性。APNs可以传送通知消息到iOS,WatchOS,tvOS和macOS的设备。在应用初始化......
  • Oracle与DB2、MySQL取前10条记录的对比
    Oralce的示例:1.最佳选择:利用分析函数row_number()over(partitionbycol1orderbycol2)比如想取出100-150条记录,按照tname排序selecttname,tabtypefrom(selecttname,tabtype,row_number()over(orderbytname)rnfromtab)whe......
  • WinServer2008下IIS8如何给网站配置域名/IP来访问
    Windows2008下IIS7主机头如何配置,IIS7主机头编辑绑定设置Windows2008r2搭建网站服务器,对于IIS6如何添加主机头,小编之前介绍了方法。下面本经验演示一下IIS7怎么添加主机头,如何配置网站添加主机头设置1.主机头查看,在“开始---运行”中输入inetmgr命令之后,点击“确定”按钮即......
  • 14-Filter&Listener&Ajax&Axios&JSON
    1,Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。Servlet我们之前都已经学习过了,Filter和Listener我们今天都会进行学习。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有......