sql - 我可以使用 WITH clausule 创建表作为选择吗
问题描述
我想使用 WITH 子句创建表 - 例如这样做:
With t1 as ( select a, b, c from x1 )
, t2 as ( select p, q, r from x2 )
create table T as
select a,b,c,q,r
from t1 join t2 on t1.a = t2.p
;
但是当我执行这个时,我得到了ORA-00928
当然我的查询更复杂,但是当我在没有创建表的情况下执行它时,它可以工作...... ..问题出在哪里?
解决方案
当然,为什么不呢?您只需要遵循语法,即CREATE TABLE
首先,WITH
接下来的因式分解子句。
SQL> create table t as
2 with test as (select empno, ename, job, sal from emp)
3 select * from test;
Table created.
SQL> select * From t;
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7369 SMITH CLERK 920
7499 ALLEN SALESMAN 1600
7521 WARD SALESMAN 1250
7566 JONES MANAGER 2975
<snip>
推荐阅读
- node.js - 如何让 stackblitz typescript 包在本地运行?
- python - 在目录中查找最新文件
- sql - Gorm 仅在一个模型上的多对一外键
- javascript - 存在同名输入时获取表单属性
- matlab - 需要帮助编写一个脚本来计算由小数整数索引的总和(如 1.5、2.5、3.5...)
- python - 是否可以在 Python 中按列而不是行与一个固定系列进行运行关联?
- html - 如何在 div 中创建文本自动段落?
- javascript - 如何在执行类的每个方法之前触发自定义代码
- php - 从表单将数组插入 MySQL 数据库
- sql - 优化 postgres 上的窗口功能(每个帐户保留 n 个最近记录)