with as 的用法:
格式: With 名字 AS (一个查询的结果)
案例1:
With 查询结果 AS
(
select t.wo_id,t.lot_id,t.main_qty from wip_lot t
where LOT_TYPE='FC'
and BRANCH_OF_PROCESS='30'
)
select * from 查询结果
解释: 通过条件筛选wip_lot表的结果 : t.wo_id,t.lot_id,t.main_qty。并且把这个结果命名为查询结果,之后再在这个查询结果里边查询全部内容。查询结果 相当于一个筛选过的表。
案例1输出结果:
案例2: 存在多个需要筛选的表
With 批次查询结果 AS
(
select t.wo_id,t.lot_id,t.main_qty from wip_lot t
where LOT_TYPE='FC'
and BRANCH_OF_PROCESS='30'
),
工单查询结果 AS
(
select t.doc_id,t.CUSTOMER_CODE,t.LOT_TYPE
from wip_wo t
)
select ta.*,tb.*
from 批次查询结果 ta
inner join 工单查询结果 tb on tb.doc_id=ta.wo_id
解释: wip_lot表的筛选结果作为 批次查询结果(ta) ,wip_wo表的筛选结果作为 工单查询结果(tb) 再把两次的查询结果作为多表关联查询。所以 WIth As 的使用比较多是在那种查询结果要很多表的数据经过层层筛选取到的值。