好用的 with as

简介

        with as 相当于视图,是子查询的另一种写法,原理是将建立一个临时表。在做分析时如果需要多次使用到某些中间表可以使用该方法,格式如下:

with SQL_1 as (SELECT ***),SQL_2 as (SELECT ***) 
select * from XXX where XXX and XXX;

例子

        如对于EMP表:

SELECT * FROM EMP;

        拆成两个表:

WITH
E_ID AS (SELECT EMPNO,ENAME FROM EMP),
DETAIL AS (SELECT EMPNO,JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP)
SELECT * FROM  E_ID

        同理:

WITH
E_ID AS (SELECT EMPNO,ENAME FROM EMP),
DETAIL AS (SELECT EMPNO,JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP)
SELECT * FROM  DETAIL

        直接使用视图:

WITH
E_ID AS (SELECT EMPNO,ENAME FROM EMP),
DETAIL AS (SELECT EMPNO,JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP)
SELECT * FROM  e_id E JOIN DETAIL D ON E.EMPNO=D.EMPNO

        可以多次使用,代替一些连接和嵌套,with as得到的信息存放到临时表中,减省数据库的资源从而提高性能

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

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

相关文章

spring-数据处理及跳转

结果跳转方式 ModelAndView 设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 . 页面 : {视图解析器前缀} viewName {视图解析器后缀} <!-- 视图解析器 --> <bean class"org.springframework.web.servlet.view.InternalResourceViewRes…

C++多重继承解决方法

eg1&#xff1a;解决方法&#xff1a;添加作用域标识符&#xff0c;消除成员限定的二义性 #include <iostream> #include<iostream> #include<vector> using namespace std; class A { public: void f() { cout << "A::f()&quo…

Golang:GORM使用First查询日志中出现大量record not found

感觉是作者故意留下的坑吧&#xff0c;用了很多编程语言的orm实现&#xff0c;第一次发现这个问题&#xff0c;好在作者已经解决了 通过配置日志参数IgnoreRecordNotFoundErrortrue实现忽略数据不存在的日志 完整配置示例 newLogger : logger.New(log.New(os.Stdout, "…

vue页面跳转后,再次返回原页面,不清空查询条件

需求说明 通过查询条件查询到对应的结果&#xff08;页面A&#xff09;&#xff0c;点击某一条列表数据&#xff0c;跳转到对应的详情页面&#xff08;页面B&#xff09;&#xff0c;点击返回按钮&#xff0c;再次返回页面A&#xff0c;之前的页面A查询条件和页面需要保持原始…

python中socket详解使用教程(结尾有案列)

socket 是 Python 中用于网络通信的一个标准库。它提供了创建网络套接字并进行网络通信的接口。下面我会详细解释 Python 中 socket 的基本概念和使用方法。 简单列程&#xff0c;在文章后面&#xff0c;可以自行翻阅 基本概念 套接字&#xff08;Socket&#xff09;&#xf…

Vue源码解读学习

Vue源码 观察者模式 & 发布订阅 观察者模式&#xff1a;中心一对多 系统单点间的灵活和拓展&#xff08;广播的方式&#xff09; 发布订阅&#xff1a;将注册列表遍历发布给订阅者 initInject initState initProvide他们挂载顺序为什么这样设计&#xff1f; initstate…

大数据运维应用场景面试题汇总及参考答案(持续更新)

描述大数据环境下的数据备份和恢复策略。 在大数据环境下,数据备份和恢复策略是确保数据安全和业务连续性的关键措施。首先,备份策略需要根据数据的重要性、更新频率和业务需求来设计。对于关键数据,可能需要实施实时或近实时的备份,而对于不太重要的数据,则可以采用定期备…

解决npm run dev跑项目,发现node版本不匹配,怎么跑起来?【已解决】

首先问题点就是我们npm run dev 运行项目的时候发现出错&#xff0c;跑不起来&#xff0c;类型下面这种 这里的出错的原因在于我们的node版本跟项目的版本不匹配 解决办法 我这里的问题是我的版本是node14的&#xff0c;然后项目需要node20的&#xff0c;执行下面的就可以正…

html接入高德地图

1.申请key key申请地址&#xff1a;https://console.amap.com/dev/key/app 官方文档 https://lbs.amap.com/api/javascript-api-v2/summary 2.html接入示例 需要将YOUR_KEY替换成自己的key <!doctype html> <html> <head><meta charset"utf-…

python的抽象类和抽象方法

抽象类是一种不能直接被继承的类。举个例子&#xff0c;我们可以从类Creature衍生出类People&#xff0c;Cats&#xff0c;其中前者两条腿走路&#xff0c;后者四条腿走路&#xff0c;而单独的类Creature却没有一个几条腿走路的方法&#xff0c;因为这是不确定的。 &#xff0…

WebKit 入门介绍

WebKit的介绍 WebKit 是一个开源的浏览器引擎&#xff0c;主要用于处理和渲染网页内容。它包含了用于解析 HTML 和 CSS、构建及维护文档对象模型 (DOM)、渲染页面布局与图形、以及执行 JavaScript 脚本等一系列功能模块&#xff0c;旨在为用户提供快速、流畅且标准兼容…