mysql中的with

news2025/5/20 3:49:25

概念

WITH 子句是 MySQL 中的一种 SQL 结构,又称为 Common Table Expression (CTE)。它在不影响原有 SQL 语句的情况下,允许开发人员临时创建一个内存中的结果集,然后对其进行操作。

作用

WITH 子句的主要用途是创建一个暂时的结果集,这个结果集在后续的查询中可以多次使用。WITH 子句主要用于解决查询复杂度高的问题,因为它可以将多次需要的计算结果集存储下来,以便后续的查询可以直接使用。它还可以帮助我们更好地组织复杂的 SQL 查询,使得代码更加清晰易读。

优点

WITH 子句的主要优点是允许开发人员将复杂的查询进行分解和抽象,以提高代码的可读性和可维护性。例如,如果需要对同一表的不同字段进行多次查询,可以使用 WITH 子句将这些查询的结果集抽象为一个独立的部分,从而避免代码的重复。

with的语法

cte_name 是 WITH 子句的名称;

column_name1、column_name2 等是结果集的列名;

SELECT 子句定义了该结果集的内容;

condition 是查询的过滤条件。

WITH 
cte_name (column_name1, column_name2, ...) 
AS 
(SELECT column1, column2, ... FROM table WHERE condition)

实例

使用 WITH 子句创建了一个名为“monthly_salary”的临时结果集,其中包含员工 ID、名字、姓氏和月薪。然后,我们选择了所有内容,并从该结果集生成了最终结果。

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    salary INT
);

INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES 
    (1, 'John', 'Doe', 50000),
    (2, 'Jane', 'Doe', 55000),
    (3, 'Jim', 'Smith', 60000),
    (4, 'Sarah', 'Johnson', 65000),
    (5, 'Tom', 'Brown', 70000);

WITH monthly_salary AS (
    SELECT employee_id, first_name, last_name, salary/12 AS monthly_salary
    FROM employees
)
SELECT *
FROM monthly_salary;

结果为

 

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

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

相关文章

NewStarCTF 2022 web方向题解 wp

----------WEEK1---------- BUU NewStarCTF 公开赛赛道 WEEK1 [NotPHP] 先看题目,要传参加绕过。 分析一下代码:首先get一个datadata://test/plain,Wel…。然后key1和2用数组可以绕过。num2077a可以绕过弱类型。eval()中的php语句被#注释了&#xff0c…

SpringBoot中间件ElasticSearch

Elasticsearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的 全文搜索引擎 ,基于RESTful web 接口。 Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elastics…

软考(一)进制的表示(二进制,八进制,十进制,十六进制)

进制的转换 一、进制的表示 二进制(B): 0 , 1 , 10 , 11 , 100 , 101 , 110 , 111 , 1000 0,1,10,11,100,101,110,111,1000 0,1,10,11,100,101,110,111,1000 对应的十进制是: 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 0,1,2,3,4,5,6…

视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?

开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流&#…

长安链并行调度机制(2):DAG构建和从节点执行流程

长安链采用高效的并行调度方式执行交易,了解长安链交易调度、冲突检测和DAG构建流程有助于开发者更好地理解长安链并行调度的运行机制,帮助开发者编写高质量、低冲突的智能合约,更好地构建区块链应用。 上一篇内容我们说明了长安链交易调度、…

STM32驱动SD卡(SPI)方式

外观 代码(免费分享) 接线 5V供电 CS接PA3 剩下如图按照硬件SPI1接线 注意事项 使用杜邦线接线非常不稳定!!! 使用杜邦线接线非常不稳定!!! 使用杜邦线接线非常不稳定!!&#…

如何将 Animate 动画与 After Effects 中的 Cinema 4D 渲染合并?

如何将手动动画 2D 元素添加到 3D 渲染中,有多种方法可以做到这一点,但您需要确保在动画的两侧都进行设置,以确保在合成时能够充分利用资源。上面的视频确实贯穿了一个非常实用且高效的工作流程,以实现正确的这些效果。 创建参考…

沉浸式VR虚拟实景样板间降低了看房购房的难度

720 全景是一种以全景视角为特点的虚拟现实展示方式,它通过全景图像和虚拟现实技术,将用户带入一个仿佛置身其中的沉浸式体验中。720 全景可以应用于旅游、房地产、展览等多个领域,为用户提供更为直观、真实的体验。 在房地产领域&#xff0c…

乡村振兴战略下传统村落文化旅游设计书辉瑞

乡村振兴战略下传统村落文化旅游设计书辉瑞

vue3+ts+tinynce富文本编辑器+htmlDocx+file-saver 配合实现word下载

vue3 请下载html-docx-js-typescript,否则会报错类型问题 //报告导出word import * as htmlDocx from "html-docx-js-typescript";//ts-ignore import { saveAs } from file-saver// 下载文件, const downloadFile (row)> {try {const co…

24个非常实用的Python小技巧

嗨喽,大家好呀~这里是爱看美女的茜茜呐 1.唯一性 以下方法可以检查给定列表是否有重复的地方,可用set()的属性将其从列表中删除。 x [1,1,2,2,3,2,3,4,5,6] y [1,2,3,4,5] len(x) len(set(x)) # False len(y) len(set(y)) # Tr…

压力变送器与传统压力表相比,有哪些优势?

在压力变送器还未普及的时候,工业自动化生产中的压力数据普遍采用压力表进行数据采集,但是压力表数据在使用的过程中,经常存在记录不方便、校验周期短、故障率高的问题,随着数字化在工业生产中的广泛应用,压力变送器逐…

[EasyX库安装介绍讲解】超详细入门级

基本说明 EasyX 是针对 C 的图形库,可以帮助 C/C 初学者快速上手图形和游戏编程。 比如,可以基于 EasyX 图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习…

安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…

Andorid 属性动画ObjectAnimation整理

属性动画相关内容可参考官网 动画资源 属性动画概览 来自官网的说明, 属性动画与视图动画的区别 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到。视图动…

微信开发之一键创建标签的技术实现

简要描述: 添加标签 请求URL: http://域名地址/addContactLabel 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明…

高校实验室预约平台

高校实验室预约平台 我们​正在定制开发的软件,资源都在完成数字化管理,然后向社会开放… 每个行业走在向数字化深化,昨天看到一个数字,美国企业SAAS软件的渗透率为75%,中国企业还只有15%,中国企业数字化还…

同创永益入选首批“金融数字韧性与混沌工程实践试点机构”

8月16日下午,由北京国家金融科技认证中心、北京国家金融标准化研究院联合主办的“传递信任 服务发展”金融科技标准认证生态大会在太原成功举办。中国金融电子化集团有限公司党委书记、董事长周逢民,中国科学院院士冯登国,中国工商银行首席技…

如何制作党建专题汇报片

通过展示党组织的凝聚力和战斗力,增强党员的组织归属感和团结合作意识。通过宣传片,可以加强党组织的凝聚力,推动党的事业发展。制作党建专题汇报片需要一定的前期准备和后期制作技巧。下面是由深圳党建专题汇报片制作公司老友记小编为您整理…

kubesphere安装Maven+JDK17 流水线打包

kubesphere 3.4.0版本,默认支持的jav版本是8和11,不支持17 。需要我们自己定义JenKins Agent 。方法如下: 一、构建镜像 1、我们需要从Jenkins Agent的github仓库拉取master最新源码,最新源码里已经支持jdk17了。 git clone ht…