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

达梦(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查询操作 查询结果排序 为提高查询结果可读性&#xff0c;我们可以对查询结果按照一定顺序排列&#xff0c;或者也可以将列名替换成数字&#xff0c;例如 ORDER BY 1 DESC&#xff0c;意思是按第…...

【重生之我在学Android】WorkManager (章一)

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

【强训笔记】day23

NO.1 思路&#xff1a;直接计算结果&#xff0c;先计算怪物可以抗几次攻击&#xff0c;再计算勇士受到的伤害&#xff0c;如果勇士的攻击力大于等于怪物的血量&#xff0c;那么就可以击杀无数只&#xff0c;如果勇士的血量正好是受到攻击的整数倍&#xff0c;那么击杀的怪物数…...

C语言-STM32:介绍PWM,并使用PWM实现呼吸灯

1、什么是PWM PWM&#xff0c;全称为Pulse Width Modulation&#xff0c;中文名为脉冲宽度调制。这是一种模拟控制技术&#xff0c;通过改变脉冲信号的宽度来表征一个连续变量的平均值&#xff0c;通常用于对模拟信号的数字化控制&#xff0c;特别是在功率转换和信号处理中非常…...

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是一个接口&#xff0c;它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下&#xff1a; forEachRemaining(Consumer<? super E> action)&#xff1a;为每个剩余元素执行给…...

免费Premiere模板,几何图形元素动画视频幻灯片模板素材下载

Premiere Pro模板&#xff0c;几何图形元素动画视频幻灯片模板 &#xff0c;组织良好&#xff0c;易于自定义。包括PDF教程。 项目特点&#xff1a; 使用Adobe Premiere Pro 2021及以上版本。 19201080全高清。 不需要插件。 包括帮助视频。 免费下载&#xff1a;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勒索病毒解密恢复工具

在网络技术飞速发展的时代&#xff0c;通过网络开展各项工作业务成为众多企业的首选&#xff0c;网络也为企业的生产运营提供了极大便利&#xff0c;大大提升了企业办公效率&#xff0c;但是利用网络避免不了网络威胁的存在&#xff0c;数据安全问题一直是企业关心的主要话题。…...

基于springboot实现的在线动漫信息平台

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…...

C# Winform+Halcon结合标准视觉工具

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

英语单词量测试

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

三、安装node_exporter

目录 一、简介 二、下载安装 一、简介 Exporter是Prometheus的指标数据收集组件。它负责从目标Jobs收集数据&#xff0c;并把收集到的数据转换为Prometheus支持的时序数据格式。 和传统的指标数据收集组件不同的是&#xff0c;他只负责收集&#xff0c;并不向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 最终解决方法 参考文献&#xff1a; 1 [ERROR] Send frame to vdec failed, errorno:507018 某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018 Ac…...

Flutter 中的 SwitchListTile 小部件:全面指南

Flutter 中的 SwitchListTile 小部件&#xff1a;全面指南 在Flutter的Material组件库中&#xff0c;SwitchListTile是一个包含开关&#xff08;Switch&#xff09;的列表项&#xff0c;非常适合用来创建带有标题、副标题以及开关的列表项&#xff0c;常用于设置界面&#xff…...

详细分析Vue3中的defineExpose(附Demo)

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

合合信息:TextIn文档解析技术与高精度文本向量化模型再加速

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

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...