达梦(DM) SQL查询及联合查询
达梦DM SQL查询及联合查询
- 查询结果排序
- 多表联合查询
这里继续讲解DM数据库的Sql查询操作
查询结果排序
为提高查询结果可读性,我们可以对查询结果按照一定顺序排列,或者也可以将列名替换成数字,例如 ORDER BY 1 DESC,意思是按第一列进行升序排序
SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY ID DESC;SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY 1 DESC;
执行结果如图
如果想要进行多列排序的话,可以在 order by 后加两列,并分别标明 ASC, DESC。其中 ASC 表示升序,DESC 表示降序
SELECT * FROM PY_PERIOD_CLAZZ WHERE ROWNUM < 5 ORDER BY 2 ASC,1 DESC;
执行结果如图
说明:多列排序,若前面的列有重复,后面的排序才有用。即先通过前面的列将数据分组,再按照后面的列进行排序。
如果想按照客户手机号尾号的顺序排列,缩小查询范围,可以通过如下函数实现子串排序
SELECT USER_NAME AS 姓名, SUBSTR (PHONENUMBER, -4) AS 尾号 FROM SYS_USER WHERE ROWNUM < 5 ORDER BY 2;
查询结果如图
TRANSLATE 可实现字符替换,语法格式:TRANSLATE(expr,from_string,to_string),from_string 与 to_string 以字符为单位,对应字符逐个替换
SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '1234567') AS new_str FROM DUAL;
执行结果如图
如果 to_string 为空,则直接返回空值
SELECT TRANSLATE ('ab你好bcadefg', 'abcdefg', '') AS new_str FROM DUAL;
执行结果如图
如果 to_string 对应的位置没有字符,from_string 中列出的字符将会被删除
SELECT TRANSLATE('11ab你好bcadefg','1abcdefg','1') AS new_str FROM DUAL;
查询结果如图
多表联合查询
使用 union 或者 union all 关键字合并多个结果集时,对应的列数必须一致,列的数据类型必须匹配。当其中一个结果集的列数不满足要求时,可以使用 NULL 或者 空字符串 填充
-- 使用 NULL 填充
SELECT USER_ID, USER_NAME FROM SYS_USER WHERE ROWNUM < 5
UNION ALL
SELECT 11, NULL FROM DUAL;
查询结果如图
-- 使用 '' 填充SELECT USER_ID, USER_NAME FROM SYS_USER WHERE ROWNUM < 5UNION ALLSELECT 11, '' FROM DUAL;
查询结果如图
注意:如果存在 order by 子句,必须添加到 union 和 union all 的最后。
union all 用于合并两个结果集,但是会出现重复数据,比如
SELECT * FROM SYS_USER WHERE USER_ID=1 OR USER_NAME='若依';
or查询返回一条数据,结果正确
使用union all 合并结果集的话
SELECT * FROM SYS_USER WHERE USER_ID=1UNION ALLSELECT * FROM SYS_USER WHERE USER_NAME='若依';
查询结果重复了
使用union的话就可以了
SELECT * FROM SYS_USER WHERE USER_ID=1UNION SELECT * FROM SYS_USER WHERE USER_NAME='若依';
查询结果
说明:使用 union all 替换 or,执行计划更高效,出现重复行时,使用 union 去重。
EXCEPT 获取第一个结果集的数据,然后排除第二个结果集的数据,类似减法运算
CREATE TABLE dept AS SELECT dept_id FROM SYS_USER;INSERT INTO dept VALUES (888),(999),(3004); COMMIT;SELECT dept_id FROM dept EXCEPT SELECT dept_id FROM SYS_USER;
查询结果如图
查询含有 null 值的行时,如果包含 IN、NOT IN 要注意两者的区别。IN 相当于 OR, 而 NOT IN 相当于 AND,比如
SELECT * FROM SYS_USER WHERE user_id IN (1,2,NULL);
查询出数据库的2条数据,
SELECT * FROM SYS_USER WHERE user_id not in (1,2,NULL);
并未查询出数据,因为 NOT IN 的逻辑是 1 AND 2 AND NULL。当 NOT IN 后面跟的子查询返回的列存在 NULL 值,可能得不到正确的结果。
内连接:完全满足连接条件的记录
SELECT * FROM SYS_USER t1,DEPT t2 WHERE t1.DEPT_ID=t2.DEPT_ID;SELECT * FROM SYS_USER t1 JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);
查询结果如图
左外连接:结果不仅包含满足条件的记录,还包含位于左表中不满足条件的记录,此时右表的记录显示为 NULL
SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 LEFT OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);
查询结果如图
右外连接:结果不仅包含满足条件的记录,还包含位于右表中不满足条件的记录,对应的左表的记录显示为 NULL
SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 RIGHT OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);
查询结果如图
全外连接:结果不仅包含满足条件的记录,还会包含位于两边表中所有不满足条件的记录,对应的两边表的记录显示为 NULL
SELECT t1.USER_NAME,t2.DEPT_ID FROM SYS_USER t1 FULL OUTER JOIN DEPT t2 on (t1.DEPT_ID=t2.DEPT_ID);
查询结果如图
自连接:表和自身进行连接,自连接查询至少要对一张表起别名,否则,服务器无法识别要处理的是哪张表。
相关文章:

达梦(DM) SQL查询及联合查询
达梦DM SQL查询及联合查询 查询结果排序多表联合查询 这里继续讲解DM数据库的Sql查询操作 查询结果排序 为提高查询结果可读性,我们可以对查询结果按照一定顺序排列,或者也可以将列名替换成数字,例如 ORDER BY 1 DESC,意思是按第…...

【重生之我在学Android】WorkManager (章一)
相关文章 【重生之我在学Android原生】ContentProvider(Java) 【重生之我在学Android原生】Media3 【重生之我在学Android】WorkManager (章一) 前言 官方文档 官方推荐 - 前台服务、后台服务都可以使用WorkManger来实现 案例 语言:JA…...

【强训笔记】day23
NO.1 思路:直接计算结果,先计算怪物可以抗几次攻击,再计算勇士受到的伤害,如果勇士的攻击力大于等于怪物的血量,那么就可以击杀无数只,如果勇士的血量正好是受到攻击的整数倍,那么击杀的怪物数…...

C语言-STM32:介绍PWM,并使用PWM实现呼吸灯
1、什么是PWM PWM,全称为Pulse Width Modulation,中文名为脉冲宽度调制。这是一种模拟控制技术,通过改变脉冲信号的宽度来表征一个连续变量的平均值,通常用于对模拟信号的数字化控制,特别是在功率转换和信号处理中非常…...

SpringBean详解
文章目录 概述Spring获取Bean的流程依赖注入bean的作用域Spring 中的 Bean 是线程安全的吗Spring如何处理线程并发问题bean 的自动装配和方式Resource和Autowired的区别bean的自动装配bean的生命周期BeanFactoryBeanFactory 常用的实现类有哪些BeanFactory与FactoryBean的不同A…...

hive获取这周五到下周四的区间,周一到周日的区间
-- 获取每个日期所在周期的开始和结束时间 SELECTcreated_date AS date_in_period,CASEWHEN date_format(created_date, u) < 5 THEN date_sub(created_date, cast(date_format(created_date, u) AS INT) 2)ELSE date_sub(created_date, cast(date_format(created_date, u)…...

Iterable与Iterator
Iterator public interface Iterator<E> {} terator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下: forEachRemaining(Consumer<? super E> action):为每个剩余元素执行给…...

免费Premiere模板,几何图形元素动画视频幻灯片模板素材下载
Premiere Pro模板,几何图形元素动画视频幻灯片模板 ,组织良好,易于自定义。包括PDF教程。 项目特点: 使用Adobe Premiere Pro 2021及以上版本。 19201080全高清。 不需要插件。 包括帮助视频。 免费下载:https://prmu…...

数据结构与算法学习笔记九---循环队列的表示和实现(C++)
目录 前言 1.为什么要使用循环队列 2.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.清空队列 5.队列是否为空 6.队列长度 7.队头 8.入队 9.出队 10.遍历队列 11.完整代码 3.参考资料 前言 这篇文章介绍循环队列的表示和用法。 1.为什么要使用循环队…...

Mysql获取当前时间
1、今天开始时间和结束时间 SELECT DATE_FORMAT(NOW(),’%Y-%m-%d 00:00:00’) AS ‘今天开始’; SELECT DATE_FORMAT(NOW(),’%Y-%m-%d 23:59:59’) AS ‘今天结束’;2、昨天的开始时间和结束时间 SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 DAY), ‘%Y-%m-%d 00:…...

计算机服务器中了locked勒索病毒怎么解决,locked勒索病毒解密恢复工具
在网络技术飞速发展的时代,通过网络开展各项工作业务成为众多企业的首选,网络也为企业的生产运营提供了极大便利,大大提升了企业办公效率,但是利用网络避免不了网络威胁的存在,数据安全问题一直是企业关心的主要话题。…...

基于springboot实现的在线动漫信息平台
开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…...

C# Winform+Halcon结合标准视觉工具
介绍 winform与halcon结合标准化工具实例 软件架构 软件架构说明 基于NET6 WINFORMHALCON 实现标准化视觉检测工具 集成相机通讯 集成PLC通讯 TCP等常见通讯 支持常见halcon算子 图形采集blob分析高精度匹配颜色提取找几何体二维码提取OCR识别等等 。。。 安装教程 …...

英语单词量测试
网址:https://preply.com/en/learn/english/test-your-vocab 测试结果: 细节:英语母语者有20000-35000个单词的词汇量,8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的,6000个单词足够用了。足够用࿰…...

三、安装node_exporter
目录 一、简介 二、下载安装 一、简介 Exporter是Prometheus的指标数据收集组件。它负责从目标Jobs收集数据,并把收集到的数据转换为Prometheus支持的时序数据格式。 和传统的指标数据收集组件不同的是,他只负责收集,并不向Server端发送数据…...

kafka基础知识
kafka架构 producer -> kafka cluster(broker>topic>partition) -> consumer -> zookeeper kafka压测 kafka-producer-perf-test.sh kafka-consumer-perf-test.sh kafka日志保存位置及消息保存时间 /tpdata/client/Kafka/kafka/config/server.properties log.…...

华为昇腾310B1平台视频解码失败[ERROR] Send frame to vdec failed, errorno:507018
目录 1 [ERROR] Send frame to vdec failed, errorno:507018 2 bug解决尝试1 3 bug解决尝试2 4 最终解决方法 参考文献: 1 [ERROR] Send frame to vdec failed, errorno:507018 某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018 Ac…...

Flutter 中的 SwitchListTile 小部件:全面指南
Flutter 中的 SwitchListTile 小部件:全面指南 在Flutter的Material组件库中,SwitchListTile是一个包含开关(Switch)的列表项,非常适合用来创建带有标题、副标题以及开关的列表项,常用于设置界面ÿ…...

详细分析Vue3中的defineExpose(附Demo)
目录 前言1. 基本知识2. Demo3. 实战 前言 其基本知识可参考官网:Vue3中的defineExpose 1. 基本知识 defineExpose 是 Vue 3 的 Composition API 中一个新的实用函数,用于在 <script setup> 语法下显式暴露组件的公共属性和方法 这在处理子组件…...

合合信息:TextIn文档解析技术与高精度文本向量化模型再加速
文章目录 前言现有大模型文档解析问题表格无法解析无法按照阅读顺序解析文档编码错误 诉求文档解析技术技术难点技术架构关键技术回根溯源 文本向量化模型结语 前言 随着人工智能技术的持续演进,大语言模型在我们日常生活中正逐渐占据举足轻重的地位。大模型语言通…...

Git与Gitlab
第1章Git概述 Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 代码托管中心,记录每个版本的代码,从项目创建到现在使用的代码,中间所有的修改都有记录。 1. 何为版本控制 版本控制是…...

MySQL数据库从入门到精通(下)
对表做了修改之后,记得点击对应图标按钮重新执行一下。 1.创建角色表 数据库一开始就要设计好,轻易不要改动。一个账号下可能有多个角色,所以我们单独再创建另一个表role用来存储所有的角色信息。其中idrole表示角色id,name表示名…...

从融媒到智媒,小程序框架可助力传媒企业在AI实践下的服务变现
过去5年,媒体行业一直都在进行着信息化建设向融媒体平台建设的转变。一些融媒体的建设演变总结如下: 新闻终端的端侧内容矩阵建设,如App新闻端,社交平台上的官方媒体等 新闻本地生活双旗舰客户端,兼顾主流媒体核心宣传…...

MES系统在电线电缆行业生产上的应用
MES系统在线缆行业的应用可以带来多重价值,包括提高生产效率、降低生产成本、提高产品质量、优化库存管理、改善生产环境和提高企业竞争力等方面。因此,在电线电缆行业中广泛应用MES系统可以提高企业的经济效益和社会效益,推动企业发展和行业…...

怎么把图片上的字去掉
将图片上的字去掉通常需要使用图像编辑软件或在线工具。以下是一些常用的方法和步骤: 使用Adobe Photoshop: 打开Photoshop,导入需要编辑的图片。 选择“橡皮擦工具”或“克隆图章工具”。 如果使用“橡皮擦工具”,调整橡皮擦的…...

BFS和DFS优先搜索算法
1. BFS与DFS 1.1 BFS DFS即Depth First Search,深度优先搜索。它是一种图遍历算法,它从一个起始点开始,逐层扩展搜索范围,直到找到目标节点为止。 这种算法通常用于解决“最短路径”问题,比如在迷宫中找到从起点到终…...

python将两张图片对齐
目录 需要对齐的照片如下: 源码: 结果: 需要对齐的照片如下: 源码: import cv2 import numpy as np from matplotlib import pyplot as plt# 读取两张图片 imgA cv2.imread(./out/out/3.png) imgB cv2.imread(./…...

Linux修炼之路之初识操作系统+基础指令(1)
目录 引言 一:对操作系统(OS)的简单了解 1.操作系统(OS) 是什么 2.操作系统好坏的衡量标准 3.操作系统存在的重要性 4.理解所有在计算机上的操作 二:Linux与windows操作的特点区别 三:基础指令 1.ls 指令 1.使用 2.常用选项 2.…...

Flink中基于Chandy-Lamport算法的分布式快照实现详解
Apache Flink利用了一种基于Chandy-Lamport分布式快照算法的变体——异步屏障快照(Asynchronous Barrier Snapshotting, ABS)来实现其强大的容错机制。Chandy-Lamport算法最初由K.M. Chandy和Leslie Lamport于1985年提出,是一种用于分布式系统…...

软件3班20240513
java.util.PropertyResourceBundle4554617c package com.yanyu;import java.sql.*; import java.util.ResourceBundle;public class JDBCTest01 {public static void main(String[] args) throws SQLException { // 获取属性配置文件ResourceBundle bundle Res…...