Oracle with as 的用法详解

一般查询语句,我们会使用select串接好数据来查询,如果是很复杂是,还可能写个视图来查,有没有那种查询复杂的数据后,还要继续做筛选的,又不想去写个视图再操作的方法呢?oracle为我们提供了with的写法,很好的解决了这个问题

优点

使得sql语句清晰明了,更容易读懂
提高复杂语句查询效率

语法

with t1 as (select * form table_name ),  --这里相当于t是一个临时表
     t2 as (select * from table_name1)  
select * form t;                       --这里就可以直接对t数据进行查询操作

示例

有如下两张表

---创建Student表格
create table student(Studentid number(5),Studentname varchar2(40),classId number(5))
---创建class表格
create table class(classId number(5),classname varchar2(40))
--插入数据
insert into class values(1,'一班')
insert into class values(2,'二班')
insert into student values(1,'张三',1)
insert into student values(2,'李四',1)
insert into student values(2,'王二',3)
--使用with查询范例
with t as (select Studentname,classname from student,class where student.classId =class.classId )
select * from t;

你可能感兴趣的:(oracle)