with as 用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了with as 用法相关的知识,希望对你有一定的参考价值。
参考技术AWITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。
with as 用法
–针对一个别名
with tmp as (select * from tb_name)
–针对多个别名
with
tmp as (select * from tb_name),
tmp2 as (select * from tb_name2),
tmp3 as (select * from tb_name3),
…
–相当于建了个e临时表
with e as (select * from scott.emp e where e.empno=7499)
select * from e;
–相当于建了e、d临时表
with
e as (select * from scott.emp),
d as (select * from scott.dept)
select * from e, d where e.deptno = d.deptno;
PL/SQL with as 用法。
声明了一次,后面可以重复利用不?还是只能用一次。看图片,我声明了一个temp,怎么后面用的时候提示 没有表??谢谢
两个条件放一起写啊,select count(1),count(case when topsap >=2 then 1 else null end ) from tmp,或者你前面那个with as重复写一遍加在第二句上 参考技术A 只能用一次 而且是紧跟着 with as的 既然是临时表我们就是临时用一下而已 你已经把你想要的 传给变量了 干嘛又写一次 你直接判断那个变量不就可以了吗?追问我想要的是分条件的啊 第一次是直接选取, 第二次是ToSap>=2,像这样怎么办?
追答with as 那就没办法这样用了 他是写在内存里的 读一遍就没有了 自动消失
不太明白你的需求 不好给你出主意 如果就你这样的方法的话 你可以在with as 里面就把数读出来
然后传给不同的变量 这样就比较好整
以上是关于with as 用法的主要内容,如果未能解决你的问题,请参考以下文章