Mysql,使用 UNION ALL 处理 ‘无中生有‘ 的数据。

   

       在日常的开发工作中,有时我们需要在SQL层面添加一些数据库表中没有的数据,那么我们就可以使用 UNION ALL 关键字来解决。

 

一、简单的无中生有:在查询返回结果中添加数据

       以下方的SQL1为例,我们根据 id 查询 user 表中的数据,但想将 name = "燕双鹰"、age = 70 的数据也添加上,使用 UNION ALL 完美的解决了这个问题。

SQL1

-- SQL1, 在查询结果中添加表中不存在的数据.
SELECTu.`name`,u.ageFROM user u
WHEREu.id = 4
UNION ALL
SELECT'燕双鹰' AS name,70 AS age
FROM DUAL
;

图一 

二、复制的无中生有:根据逻辑判断,追加不同的值.

    需求:这里有一个 name 模板,name值为:张三、李四、赵六, 当 user 表中含这些数据时,返回 name值 及对应的 age 值;如果表中不含 name 值,则也需要返回 name值 并将 age 值设为 0 。

     这个需求依旧可以使用 UNION ALL 来解决。这个需求看起来很无厘头,但现实的工作中总有各种奇葩的需求,身为程序员的我们也是挺无奈的!!!

    SQL2

SELECTCASE WHEN u.`name` = '张三' THEN u.`name` ELSE '张三' END AS name,CASE WHEN u.`name` = '张三' THEN u.age ELSE 0 END AS ageFROM user u
WHEREu.id = 5
UNION ALL 
SELECTCASE WHEN u.`name` = '李四' THEN u.`name` ELSE '李四' END AS name,CASE WHEN u.`name` = '李四' THEN u.age ELSE 0 END AS ageFROM user u
WHEREu.id = 4
UNION ALL
SELECTCASE WHEN u.`name` = '赵六' THEN u.`name` ELSE '赵六' END AS name,CASE WHEN u.`name` = '赵六' THEN u.age ELSE 0 END AS ageFROM user u
WHEREu.id = 6
;

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java网上药品售卖系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

有pmp证书的宝子抓紧行动了,免考拿证

1,首先简单介绍一下什么是cspm? cspm中文名字是项目管理专业人员能力等级评价,是由中国标准化协会(CAS)组织开展的,它符合国务院发布的《国家标准化发展纲要》,纲要中明确提出要构建多层次从业…

车辆在刹车不及时导致与行人发生碰撞事故,产生出险记录

车辆在刹车不及时导致与行人发生碰撞事故,是一种常见的交通事故。当发生此类事故时,车主需要及时处理保险理赔事宜,同时也需要了解车辆出险、理赔、事故记录情况,以便更好地维护车辆和自身权益。为方便车主查询车辆出险、理赔、事…

JavaScript(基础语法篇)

目录 初识 JavaScript JavaScript 是什么 发展历史 JavaScript 和 HTML 和 CSS 之间的关系 JavaScript 运行过程 JavaScript 的组成 前置知识 JavaScript 的书写形式 1. 行内式 2. 内嵌式 3. 外部式 注释 输入输出 输入: prompt 输出: alert 选择框&#xff1a…

Xcode通过Add package自动集成第三方SDK问题汇总

问题1: 解决方法:这个问题可能是因为 Adjust 或者 Facebook 的库当中依赖的某些类库的仓库地址是 git:// 协议,通过这种协议与 GitHub 通讯时会使用到你的 SSH 配置,你电脑上相关的 ssh key 使用了 GitHub 不再支持的格式&#xf…

redis高可用集群数据库的安装部署(6.2.12版本)

第三阶段基础 时 间:2023年7月3日 参加人:全班人员 内 容: 6.2.12版本redis集群部署 目录 一、环境配置:【两台服务器】 二、redis多实例配置: 三、构建redis cluster集群 四、创建主从 五、故障转移实验 …

一文读懂FPC(12)- FPC的阻抗控制

FPC系列文章目录 1.什么是FPC 2.什么是R-FPC 3,FPC的基材 4.FPC基材压延铜和电解铜的区别 5,FPC的辅材 6,FPC常见的四种类型 7,FPC的生产流程简介 8,R-FPC的生产流程简介 9,FPC的发展及应用 10&a…

SQL15 查看学校名称中含北京的用户

SELECT device_id,age,university FROM user_profile WHERE university LIKE %北京%下划线 代表匹配任意一个字符; % :百分号 代表匹配0个或多个字符; []: 中括号 代表匹配其中的任意一个字符; [^]: ^尖冒号 代表 非,取…

.NetCore gRpc 客户端与服务端的单工通信Demo

文章目录 .NetCore gRpc 客户端与服务端的单工通信Demo服务端方式一方式二 客户端proto协议文件syntax "proto3";import "google/protobuf/empty.proto";serviceproto3与.netCore 的类型对应日期和时间可为 null 的类型字节小数为 Protobuf 创建自定义 de…

echarts飘警告[ECharts] There is a chart instance already initialized on the dom.

if (//判断是否存在echarts实例化对象,如果存在则销毁this.myChart ! null &&this.myChart ! &&this.myChart ! undefined ) {this.myChart.dispose() } var chartDom this.$refs.chartName this.myChart echarts.init(chartDom)

MIT6.584分布式-原MIT6.824-lab1-2023年万字从0到1小白学习笔记

文章目录 前置准备一、分布式系统知识的学习1.1分布式Go语言环境安装1.2MIT6.824课程的学习1.2* 前言学习 可以看到这个任务是不会完成的,在我们没有开始进行编码的时候1.3课程需求1.4怎么实现、借助课程的Hints1.5首先看看其mapfunction的工作逻辑: 二、…

r‘./csv‘和f‘./csv‘有啥区别

r./csv 和 f./csv 在文件路径中具有不同的含义和用途。 r./csv:这是使用原始字符串(raw string)表示法来表示文件路径。在原始字符串中,反斜杠字符(\)不会被视为转义字符,而是作为普通字符。因…