达梦数据库SQL

news2025/2/26 5:56:40

达梦JSON函数技术文档

SQL中关键词处理

-- 必须要使用双引号包裹
select id,"comment" from t_cmp_rd_process;

select id,"commit" from t_cmp_rd_gjj_eva;

JSON_EXTRACT函数

-- party_sup_other_json 是包含JSON数据的列名。
-- '$.content_abstract' 是JSON路径,用于指定要提取的元素。
select id,json_value(party_sup_other_json,'$.content_abstract') from tv_sup_sl_dw_query where json_extract(party_sup_other_json,'$.content_abstract') != 'null';

结果

JSON_TABLE函数

-- tv_sup_sl_dw_query 是包含JSON数据的表名。
-- tv.party_sup_other_json是包含JSON数据的列名。
-- '$.parents[*]' 是指向JSON对象中需要转换的部分的路径。
-- COLUMNS 子句定义了转换后的虚拟表的列名和数据类型,以及它们在JSON对象中的路径。
-- as pjson 为转换后的虚拟表指定了一个别名,以便在查询中引用。
select tv.sup_record_id,pjson.status from tv_sup_sl_dw_query tv,
  json_table(tv.party_sup_other_json,
            '$.parents[*]' columns(
                      status varchar(50) path '$.status',
                      directly int path '$.directly'
                      )
            ) as pjson
where pjson.status = 'yqs'

结果

{  
  "orderNumber": "12345",  
  "customer": {  
    "name": "John Doe",  
    "email": "johndoe@example.com"  
  },  
  "items": [  
    {  
      "productId": "A001",  
      "quantity": 2  
    },  
    {  
      "productId": "A002",  
      "quantity": 1  
    }  
  ]  
}
SELECT o.order_id, jt.orderNumber, jt.customer.name, jt.customer.email, jt.items.productId, jt.items.quantity  
FROM orders o,  
JSON_TABLE(  
    o.order_details,  
    '$' COLUMNS (  
        orderNumber VARCHAR2(50) PATH '$.orderNumber',  
        customer OBJECT PATH '$.customer' COLUMNS (  
            name VARCHAR2(100) PATH '$.name',  
            email VARCHAR2(100) PATH '$.email'  
        ),  
        items NESTED PATH '$.items[*]' COLUMNS (  
            productId VARCHAR2(10) PATH '$.productId',  
            quantity NUMBER PATH '$.quantity'  
        )  
    )  
) AS jt;

请注意,对于嵌套的对象和数组,你可能需要使用OBJECT PATH和NESTED PATH子句来正确解析它们。此外,[*]用于表示JSON数组中的所有元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu双系统/home分区扩容

一、Windows系统中利用磁盘管理分出空闲区域,如果多就多分一些 二、插入安装Ubuntu的U盘启动盘,lenovo电脑F12(其他电脑可选择其他类似方式)选择U盘启动项,然后选择ubuntu,出现安装界面,再选择t…

什么是CPQ?CPQ报价管理软件面向制造企业快速报价解决方案

什么是CPQ? CPQ生产配置报价系统是面向生产加工企业,为企业市场部门提供快速报价的辅助系统,和配置报价系统不同的是生产报价系统成本的组成并不是标准的产品成本,其成本可能包含原材料成本、原材料损耗、制造成本、包装成本、运…

darkdown语法详解(readme语法)

1.简介 Markdown就是一种文档的格式,文件名的末尾是.md,是一种轻量级的标记语言,目前已经在Github、csdn等多个网站使用。 1.1.优点 排版语法简单可在任何支持markdown语法的地方无缝迁移,避免了 我们常见的迁移后需要重新排版…

【动态规划】算法例题

目录 一维动态规划: 137. 爬楼梯 ① 138. 打家劫舍 ② 139. 单词拆分 ② 140. 零钱兑换 ② 141. 最长递增子序列 ② 多维动态规划: 142. 三角形最小路径和 ② 143. 最小路径和 ② 144. 不同路径 II ② 145. 最长回文子串 ② 146. 交错字符串…

讯鹏智能边缘计算网关主机,支持MQTT协议主动上传上位机软件平台

随着科技的不断发展,智能化设备在我们的生活中扮演着越来越重要的角色。而智能边缘计算网关作为连接智能设备与互联网的重要纽带,其远程运维功能为管理者带来了极大的便利。特别是像OkEdge边缘计算网关这样的产品,不仅可以替代传统的Windows系…

Vmware虚拟机配置虚拟网卡

背景 今天同事咨询了我一个关于虚拟机的问题,关于内网用Vmware安装的虚拟机,无法通过本机访问虚拟上的Jenkins的服务。   验证多次后发现有如下几方面问题。 Jenkins程序包和JDK版本不兼容(JDK1.8对应Jenkins不要超过2.357)虚拟…

【Cesium】波纹圆效果

效果图: 代码: 需要扩展源码:circleRippleMaterialProperty.js /** Description: 波纹圆效果(和水波纹扩散类似,参考开源代码)* Version: 1.0*/ class CircleRippleMaterialProperty {constructor(option…

C语言例3-27:使用条件运算符的例子

条件运算符的优先级: 其他运算符 优先于 条件运算符 优先于 赋值和复合赋值运算符 优先于 逗号运算符条件运算符的结合性是从右至左 条件运算符的一般使用形式: 表达式1?表达式2:表达式3 条件表达式的执行过程是先表达式1&…

C++ Qt开发:QUdpSocket网络通信组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的网络通信…

Spring Bean的生命周期是怎么样的?

一、问题解析 一个Spring的Bean从出生到销毁的全过程就是他的整个生命周期,那么经历以下几个阶段: ​ 整个生命周期可以大致分为3个大的阶段,分别是:创建、使用、销毁。还可以进一步分为5个小的阶段:实例化、初始化、…

计算机生物科技在基因编辑中的应用及其前景

一、引言 基因编辑,作为一种能够精准修改生物体基因组的技术,近年来受到了广泛的关注。 而计算机生物科技作为连接计算机科学与生物学的桥梁,为基因编辑技术的快速发展提供了强大的支持。通过利用计算机算法和数据分析方法,研究人…

Java基础学习笔记三

环境变量CLASSPATH classpath环境变量是隶属于java语言的,不是windows操作系统的,和PATH环境变量完全不同classpath环境变量是给classloader(类加载器)指路的java A 。执行后,先启动JVM, JVM启动classload…

反射 Reflection

反射 反射的概念 反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到加载完类之后,在堆中就产生了一个Class类型…

集合Python开发环境搭建

目录 PyCharm搭建Python环境_非虚拟环境 Pycharm的优点 Pycharm的缺点 Pycharm的下载 Pycharm环境配置 VSCode搭建Python环境_非虚拟环境 VSCode的优点 VSCode的缺点 VSCode的下载 VSCode环境配置 虚拟环境使用 虚拟环境介绍 虚拟环境安装 创建虚拟环境 切换虚拟…

使用 Vue CLI 创建一个 Vue2 项目

全局安装 Vue CLI 参考官网 Vue CLI,安装命令如下 npm install -g vue/cli 目前 Vue CLI 的最新版本为 v5.0.8 创建 Vue2 项目 在希望创建项目的目录下打开命令行,键入命令 vue create my-project 其中 my-project 更改为自己需要的项目名 随后&a…

R语言程序设计(零基础速通R语言语法和常见函数的使用)

目录 1.Rstudio中的一些快捷键 2.R对象的属性 3.R语言中常用的运算符​编辑 4.R的数据结构 向量 如何建立向量? 如何从向量里面提取元素? 矩阵 如何建立矩阵? 如何从矩阵里面提取元素? 数据框 如何建立数据框&#xf…

行业逆行者倪张根的十数年

在2015年的一场发布会上,梦百合家居董事长倪张根接受完全国80多家媒体的群访后,突然起身深深鞠了一躬,把在场的记者们吓了一跳。 对此,倪张根直接、坦率地承认“就是想讨好在座的各位”,这种不够柔和、不够世故的直球表达方式,在这个向来讲究中庸的社会,有种让人避之不及却又惊…

idea maven 项目融合

背景 :项目A 和项目B 是两个独立的多模块项目,项目A 和项目B ,均为独立的数据源 。其中项目B 有两个数据原。 需要将项目B 以多模块的方式融合进项目A。 解决版本。建立项目C,只含有pom的,空项目,项目A和项…

【经验分享】Wubuntu------体验Windows和Ubuntu的结合体

【经验分享】Wubuntu------体验Windows和Ubuntu的结合体 最近看到有一款Wubuntu的文章,对于习惯使用windows操作系统,又不熟悉ubuntu系统的程序员小白来说,可以说是福音了。目前的Wubuntu兼容性可能还有一点问题,如果再迭代几次的…

nodejs 使用express插件multer文件上传,接收不到文件的bug

把路径改成绝对路径即可 改成 temp是你想上传到文件夹的路径,一般是在项目根目录下