当前位置: 首页 > news >正文

黄冈网站推广软件免费下载爱墙 网站怎么做

黄冈网站推广软件免费下载,爱墙 网站怎么做,百度站长工具数据提交,网络技术学习网站本文主要介绍#xff0c;在sqlserver存储过程中#xff0c;使用JSON字符串作为入参#xff0c;并解析使用。 JSON 相关的方法#xff1a; ISJSON#xff1a; 作用#xff1a;判断一段字符串是否是标准的 jsonFOR JSON PATH#xff1a;作用#xff1a;直接查询数据成 j… 本文主要介绍在sqlserver存储过程中使用JSON字符串作为入参并解析使用。 JSON 相关的方法 ISJSON 作用判断一段字符串是否是标准的 jsonFOR JSON PATH作用直接查询数据成 json 格式 类似于之前的查询一个 xml (FOR XML PATH)JSON_VALUE作用获取json中的节点值获取json中的节点值包含标量值、嵌套对象属性JSON_QUERY作用提取嵌套对象和嵌套数组JSON_MODIFY作用更新一段JSON的内容修改 JSON 对象里的属性值删除 JSON 对象里的某一个属性增加属性OPENJSON解析一段 json 内容 使用示例 以下json字符串示例中包含嵌套对象、数组后面以此json为示例演示。 DECLARE json NVARCHAR(MAX) N{student_id: 10,student_name: 张三,student_age: 18,student_class: {class_id: 2,class_code: snj2,class_name: 三年级2班},student_subjects: [{subject_id: 1,subject_name: 语文},{subject_id: 2,subject_name: 数学}] }; 在JSON中分为标量值可非标量值 标量值 定义单一的、不可再分解的基础数据类型例如上面JSON串顶层字段student_id、student_name、student_age 非标量值 定义可包含多个元素或键值对的复合数据结构例如上面JSON串student_class节点嵌套对象student_subjects嵌套数组 结构类型路径表达式数据类型标量值$.student_id数值标量值$.student_name字符串标量值$.student_age数值嵌套对象$.student_classJSON 对象嵌套数组$.student_subjectsJSON 数组 标量值 解析顶层字段标量值student_id、student_name、student_age --方法1直接JSON_VALUE获取--方法1直接使用JSON_VALUE获取顶层标量字段SELECT JSON_VALUE(json, $.student_id) AS student_id,JSON_VALUE(json, $.student_name) AS student_name,JSON_VALUE(json, $.student_age) AS student_age--方法2使用OPENJSON解析SELECT id as student_id,name as student_name,age as student_ageFROM OPENJSON(json) WITH (id INT $.student_id,name NVARCHAR(50) $.student_name,age INT $.student_age); 嵌套对象 获取非标量值嵌套对象student_class节点中的class_id、class_code、class_name --方法1直接使用JSON_VALUE通过$.student_class.xx获取SELECT JSON_VALUE(json, $.student_class.class_id) AS class_id,JSON_VALUE(json, $.student_class.class_code) AS class_code,JSON_VALUE(json, $.student_class.class_name) AS class_name--方法2使用OPENJSON解析用$.student_class.xx获取SELECT class_id,class_code,class_nameFROM OPENJSON(json) WITH (class_id NVARCHAR(50) $.student_class.class_id,class_code NVARCHAR(50) $.student_class.class_code,class_name NVARCHAR(50) $.student_class.class_name) AS class--方法3,先JSON_QUERY获取student_class节点然后OPENJSON解析SELECT class_id,class_code,class_nameFROM OPENJSON(JSON_QUERY(json, $.student_class)) WITH (class_id NVARCHAR(50) $.class_id,class_code NVARCHAR(50) $.class_code,class_name NVARCHAR(50) $.class_name) AS class嵌套数组 获取非标量嵌套数组student_subjects中的属性值 --直接使用JSON_VALUE 不可以获取不到SELECT JSON_VALUE(json, $.student_subjects.subject_id) AS class_id,JSON_VALUE(json, $.student_subjects.subject_name) AS class_code--使用OPENJSON解析$.student_subjects.xx读取 不可以获取不到SELECT subject_id,subject_nameFROM OPENJSON(json) WITH (subject_id NVARCHAR(50) $.student_subjects.subject_id,subject_name NVARCHAR(50) $.student_subjects.subject_name) AS subject--正确方法先使用JSON_QUERY获取$.student_subjects节点再OPENJSON解析SELECT subject_id,subject_nameFROM OPENJSON(JSON_QUERY(json, $.student_subjects)) WITH (subject_id INT $.subject_id,subject_name NVARCHAR(50) $.subject_name) AS subject;普通数组 --基本类型数组 DECLARE json NVARCHAR(MAX) N[10,20,30 ]; SELECT value AS Number FROM OPENJSON(json);--引用类型数组 DECLARE json2 NVARCHAR(MAX) N[{id:1,name:张三},{id:2,name:李四} ]; SELECT id,name FROM OPENJSON(json2) WITH ( --虚拟表映射id INT $.id, -- 提取每个对象的id字段name NVARCHAR(50) $.name -- 提取每个对象的name字段 ); 简单存储过程使用示例 下面还是通过上面的JSON字符串示例演示一下如何存储过程使用JSON字符串接收并在其中解析使用等。 ALTER PROCEDURE ParseStudentJsonjson NVARCHAR(MAX) AS BEGIN--json示例 --DECLARE json NVARCHAR(MAX) N{ -- student_id: 10, -- student_name: 张三, -- student_age: 18, -- student_class: { -- class_id: 2, -- class_code: snj2, -- class_name: 三年级2班 -- }, -- student_subjects: [ -- { -- subject_id: 1, -- subject_name: 语文 -- }, -- { -- subject_id: 2, -- subject_name: 数学 -- } -- ] --};-- 验证 JSON 格式IF ISJSON(json) 0BEGINRAISERROR(输入参数不是有效的 JSON 格式, 16, 1);RETURN;ENDcreate table #student(student_id int,student_name varchar(50),student_age int)create table #student_class(class_id int,class_code varchar(50),class_name varchar(50),student_id int)create table #student_subject(subject_id int,subject_name varchar(50),student_id int)-- 解析学生信息 方法1INSERT INTO #student (student_id, student_name, student_age)SELECT JSON_VALUE(json, $.student_id) AS student_id,JSON_VALUE(json, $.student_name) AS student_name,JSON_VALUE(json, $.student_age) AS student_age/**解析顶层字段 方法2INSERT INTO #student (student_id, student_name, student_age)SELECT id as student_id,name as student_name,age as student_ageFROM OPENJSON(json) WITH (id INT $.student_id,name NVARCHAR(50) $.student_name,age INT $.student_age);**/-- 解析班级信息 方法1INSERT INTO #student_class (class_id, class_code, class_name, student_id)SELECT JSON_VALUE(json, $.student_class.class_id) AS class_id,JSON_VALUE(json, $.student_class.class_code) AS class_code,JSON_VALUE(json, $.student_class.class_name) AS class_name,JSON_VALUE(json, $.student_id) AS student_id/**解析班级信息 方法2INSERT INTO #student_class (class_id, class_code, class_name, student_id)SELECT class_id,class_code,class_name,student_idFROM OPENJSON(json) WITH (class_id NVARCHAR(50) $.student_class.class_id,class_code NVARCHAR(50) $.student_class.class_code,class_name NVARCHAR(50) $.student_class.class_name) AS classCROSS APPLY (SELECT student_id FROM #student) AS s; --CROSS APPLY​​动态关联右侧子查询可引用左侧表的列类似逐行处理有一点点类似join的感觉**//**解析班级信息 方法3INSERT INTO #student_class (class_id, class_code, class_name, student_id)SELECT class_id,class_code,class_name,student_idFROM OPENJSON(JSON_QUERY(json, $.student_class)) WITH (class_id NVARCHAR(50) $.class_id,class_code NVARCHAR(50) $.class_code,class_name NVARCHAR(50) $.class_name) AS classCROSS APPLY (SELECT student_id FROM #student) AS s; **/-- 解析学科信息 INSERT INTO #student_subject (subject_id, subject_name, student_id)SELECT subject_id,subject_name,student_idFROM OPENJSON(JSON_QUERY(json, $.student_subjects)) WITH (subject_id INT $.subject_id,subject_name NVARCHAR(50) $.subject_name) AS subjectCROSS APPLY (SELECT student_id FROM #student) AS s;--这里为了方便只是往临时表写了数据并查出来实际业务可以是根据入参去更新、删除业务表数据select * from #student;select * from #student_class;select * from #student_subject;drop table #student;drop table #student_class;drop table #student_subject; END总结 JSON_VALUE 提取标量值如上 JSON_VALUE(json, ‘$.student_id’)提取嵌套对象属性如上 JSON_VALUE(json, ‘$.student_class.class_id’) JSON_QUERY提取嵌套对象提取嵌套数组 OPENJSON解析JSON都要用到
http://www.hkea.cn/news/14313441/

相关文章:

  • 智汇团建网站登录平台如何做网站menu菜单
  • 大足网站建设公司做网站最贵
  • wordpress建站吧网站怎么制作软件
  • 东莞企业网站推广技巧工作室注册流程
  • 网站建成之后应该怎么做网站建设与维护1997年
  • 怎么查询一个网站从哪做的哈尔滨seo
  • 自助建站cn私人做医院的网站
  • 前端 网站开发 常见功能实现百度自建站
  • 机票售票网站开发腾讯企点怎么群发
  • 怎么做国内网站吗wordpress能放视频播放器
  • 自己做的网站视频播放不了苏州专业网站建设设计公司哪家好
  • 公司网站做百度推广需要交费吗白帽seo和黑帽seo
  • 永康市建设银行网站查询网站制作教程 pdf下载
  • 网站建设项目招标标书热门行业
  • 网站建设的总体目标考核指标永明投资建设有限公司网站
  • 石家庄建站凡科app可以申请专利吗
  • c c也能干大事网站开发h5网页制作方法
  • 网站如何申请微信支付官方网站welcome怎么注册
  • 济南网站seo报价合肥做网站推广
  • 怎么在网站上做下载discuz论坛源码
  • 网站开发及建设费用手机设置管理网站首页
  • 电子商务网站建设的方法与流程网站备案制度
  • 南昌网站建设服务公众号网页源码
  • 自建营销型网站模板成都建设诚信网站
  • 怎么做谷歌这样的网站吗百度账号
  • 网页游戏广告平台网站建设wordpress安装中文
  • 外贸网站建设lanscend网页制作网站建设实战大全
  • 网站开发调研问卷优质的网站建设公司
  • 网站弹窗特效全球招商网加盟网
  • 宣武做网站鲜花网站建设企划书