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

运营好还是网站开发好品牌营销案例

运营好还是网站开发好,品牌营销案例,wordpress防攻击插件,绵阳微网站制作一、概念 OPENJSON 是 SQL Server(2016 及更高版本) 中引入的一个表值函数,它将 JSON 文本转换为行和列的关系型数据结构。通过添加 WITH 子句,可以明确指定返回数据的结构和类型,实现 JSON 数据到表格数据的精确映射…

一、概念

OPENJSON 是 SQL Server(2016 及更高版本) 中引入的一个表值函数,它将 JSON 文本转换为行和列的关系型数据结构。通过添加 WITH 子句,可以明确指定返回数据的结构和类型,实现 JSON 数据到表格数据的精确映射。

  1. OPENJSON 函数
    OPENJSON 函数用于将 JSON 文本解析为关系型数据,即将 JSON 数据转换为一张表。默认情况下,OPENJSON 返回三列:

    • key:JSON 的键值

    • value:对应的值

    • type:值的数据类型(例如:字符串、整数、对象、数组等标记为数字)

  2. WITH 子句
    使用 WITH 子句可以将 JSON 中的数据映射为指定的列,并定义其数据类型与 JSON 路径。这样不仅可以对 JSON 进行解析,还能以传统的关系型数据方式进行查询和处理。

二、语法

SELECT column_list
FROM OPENJSON(json_expression)
WITH (
column1 data_type '$.path1',
column2 data_type '$.path2',
...
);

说明:

  • json_expression:可以是一个包含 JSON 字符串的变量直接的 JSON 文本

  • WITH 子句中指定了需要映射的列名数据类型以及 JSON 路径

    • $.path 表示从根($)开始的 JSON 路径。例如:$.id、$.customer.name 等。

这样,OPENJSON 会把解析的结果返回为一张虚拟表,通过 SELECT 语句可以直接查询。

三、使用示例

示例1:解析简单的 JSON 对象

DECLARE @json NVARCHAR(MAX) = N'{"id": 1, "name": "张三", "age": 30, "isActive": true}';SELECT *
FROM OPENJSON(@json)
WITH (id INT '$.id',name NVARCHAR(50) '$.name',age INT '$.age',isActive BIT '$.isActive'
);

示例2:处理 JSON 数组

  • 将整个数组转换为表行:使用 OPENJSON 将数组中的每个元素转换为结果集中的一行。
  • 提取数组元素的特定属性:结合 WITH 子句指定需要提取的属性及其数据类型。
  • 处理嵌套数组:使用 CROSS APPLY 配合多层 OPENJSON 调用。

关键点:

  • 对数组元素使用 AS JSON 选项保持 JSON 格式以便进一步处理
  • 使用 CROSS APPLY 连接多个 OPENJSON 调用来处理多层嵌套
DECLARE @json NVARCHAR(MAX) = N'[{"id": 1, "name": "张三", "skills": ["SQL", "C#", "Python"]},{"id": 2, "name": "李四", "skills": ["Java", "JavaScript"]}
]';SELECT id, name, skills
FROM OPENJSON(@json)
WITH (id INT '$.id',name NVARCHAR(50) '$.name',skills NVARCHAR(MAX) '$.skills' AS JSON
);

输出结果

这个查询从JSON数组中提取基本信息并保留skills数组为JSON格式:

idnameskills
1张三["SQL", "C#", "Python"]
2李四["Java", "JavaScript"]

 

--处理用户及其标签的 JSON 数组
DECLARE @json NVARCHAR(MAX) = N'[{"userID": 1, "username": "user1", "tags": ["前端", "JavaScript", "React"]},{"userID": 2, "username": "user2", "tags": ["后端", "Python", "Django"]},{"userID": 3, "username": "user3", "tags": ["全栈", "JavaScript", "Node.js", "MongoDB"]}
]';-- 提取用户基本信息(保留标签数组为 JSON)
SELECT userID, username, tags
FROM OPENJSON(@json)
WITH (userID INT '$.userID',username NVARCHAR(50) '$.username',tags NVARCHAR(MAX) '$.tags' AS JSON
) AS users;-- 展开每个用户的标签到单独的行(一对多关系)
SELECT u.userID,u.username,JSON_VALUE(t.value, '$') AS tag
FROM OPENJSON(@json)
WITH (userID INT '$.userID',username NVARCHAR(50) '$.username',tags NVARCHAR(MAX) '$.tags' AS JSON
) AS u
CROSS APPLY OPENJSON(u.tags) AS t;

第一部分输出结果

这个查询提取用户基本信息,保留标签数组为JSON格式:

userIDusernametags
1user1["前端", "JavaScript", "React"]
2user2["后端", "Python", "Django"]
3user3["全栈", "JavaScript", "Node.js", "MongoDB"]

第二部分输出结果

这个查询使用CROSS APPLY展开每个用户的标签到单独的行,实现了一对多的关系展示:

userIDusernametag
1user1前端
1user1JavaScript
1user1React
2user2后端
2user2Python
2user2Django
3user3全栈
3user3JavaScript
3user3Node.js
3user3MongoDB

 示例3:处理嵌套的 JSON 对象

这个例子展示了 SQL Server 中 JSON 路径表达式的使用,特别是 $.path 格式如何从根($)开始导航嵌套的 JSON 结构。

重要概念解释

  • $ 符号:始终表示"当前上下文的根",不一定是整个 JSON 文档的根
  • 上下文切换:OPENJSON 的第二个参数改变了解析上下文,所有 WITH 子句中的路径都相对于这个新上下文
DECLARE @json NVARCHAR(MAX) = N'{"employee": {"id": 101,"name": "王五","contact": {"email": "wangwu@example.com","phone": "13800138000"}}
}';SELECT id, name, email, phone
FROM OPENJSON(@json, '$.employee')
WITH (id INT '$.id',name NVARCHAR(50) '$.name',email NVARCHAR(100) '$.contact.email',phone NVARCHAR(20) '$.contact.phone'
);

在这个示例中:

  1. OPENJSON 的第二个参数 '$.employee'
    • $ 表示整个 JSON 文档的根
    • .employee 表示从根访问名为 "employee" 的对象
    • 这个参数将查询的上下文(或"基准点")设置为 employee 对象内部
  2. WITH 子句中的路径
    • '$.id''$.name' 从 employee 对象(当前上下文)直接访问属性
    • '$.contact.email''$.contact.phone' 表示从当前上下文(employee 对象)开始,先访问 contact 对象,然后获取其中的 email 或 phone 属性
http://www.dtcms.com/wzjs/504650.html

相关文章:

  • 南昌建站软件六盘水seo
  • 模板王网页模板山东自助seo建站
  • 建设银行园区公积金管理中心网站百度广告推广平台
  • 十大货源网站大全seo推广骗局
  • 查找公司注册信息的网站南昌seo排名公司
  • 蓝彩网络科技_齐齐哈尔微信营销_齐齐哈尔网站建设快排seo排名软件
  • 动态网页用什么语言开发零基础seo入门教学
  • 新东方研学网站那家公司做的河南郑州最新消息
  • 1771wan网页游戏重庆seo网站建设
  • 做彩票网站是违法的吗站内seo的技巧
  • php网站开发程序填空题站长之家怎么用
  • 欧美风网站北京优化seo排名优化
  • 网站建设一般需要多少钱怎样做产品推广
  • 下列不属于网站开发技术的是搜索引擎营销广告
  • 制作网站好的公司软文的目的是什么
  • 企业网站的网络营销功能百度关键词网站排名优化软件
  • 佛山制作网站公司吗保定关键词优化软件
  • 合肥网站制作哪家有名seo工资多少
  • booking商家版客户端seo咨询邵阳
  • 厚街仿做网站手机制作网页用什么软件
  • 登陆注册是静态网站seo网络推广知识
  • 疯狗做网站企业qq和个人qq有什么区别
  • 民治制作网站黑科技引流推广神器免费
  • 沈阳公司网站建设关键词排名代做
  • 传奇私服的网站是怎么做的在线推广企业网站的方法有
  • 深圳网站建设公司968bt兔子磁力搜索引擎最新版
  • 做礼品的网站百度相册登录入口
  • 域名可以做网站名吗app001推广平台
  • wordpress蚂蚁主题网站seo优化方案设计
  • wordpress网站换空间国外seo工具