【oracle/语法】With语句的写法

Sample1:

with temp AS (
  select * from emp where rownum<11)
select * from temp

Result:

复制代码
SQL> with temp AS (
  2    select * from emp where rownum<11)
  3  select * from temp;

        ID NAME                                            AGE     SALARY CREATE_TIME
---------- ---------------------------------------- ---------- ---------- ---------------------------------------------------------------------------
       561 NDRKPHCF                                         40      43533 07-9月 -21 06.32.42.000000 下午
       562 VOMTMOBLCBVKIGVOZSN                              33      23063 07-9月 -21 06.32.42.000000 下午
       563 GKDDBKTFAUON                                     63      14078 07-9月 -21 06.32.42.000000 下午
       564 MHCEIQMT                                         64      11360 07-9月 -21 06.32.42.000000 下午
       565 IVKRXCHYROE                                      28      38106 07-9月 -21 06.32.42.000000 下午
       566 GROURMS                                          25      33055 07-9月 -21 06.32.42.000000 下午
       567 BEUEKLUL                                         63      23546 07-9月 -21 06.32.42.000000 下午
       568 QIITGBC                                          41      45708 07-9月 -21 06.32.42.000000 下午
       569 OTSCIZLDWMJZFV                                   32      28990 07-9月 -21 06.32.42.000000 下午
       570 KQZFWBK                                          64      45629 07-9月 -21 06.32.42.000000 下午

已选择10行。
复制代码

 

Sample2:

复制代码
with cityOldestWomen as (
select id,name,gender,cityname,birthymd from (
select 
id,name,gender,cityname,to_char(birthday,'yyyy-MM-dd') as birthymd, 
rank() over (partition by cityname order by birthday) as seq
from customer
where gender='f')
where seq=1
order by id)
select * from cityOldestWomen
复制代码

Result:

复制代码
SQL> with cityOldestWomen as (
  2  select id,name,gender,cityname,birthymd from (
  3  select
  4  id,name,gender,cityname,to_char(birthday,'yyyy-MM-dd') as birthymd,
  5  rank() over (partition by cityname order by birthday) as seq
  6  from customer
  7  where gender='f')
  8  where seq=1
  9  order by id)
 10  select * from cityOldestWomen;

        ID NAME                                     G CITYNAME                                 BIRTHYMD
---------- ---------------------------------------- - ---------------------------------------- ----------
         1 XGZLORILKOGWELLJI                        f 山海关                                   1970-01-02
         2 JFMOXKKFDJPSNBNQS                        f 绥中                                     1970-01-03
         3 WKMIILRQAKY                              f 北戴河                                   1970-01-04
        23 MKSREQXPKJTWSK                           f 兴城                                     1970-01-24
        30 ILXYETNXOKXSB                            f 津滨                                     1970-01-31

SQL>
复制代码

END

 

2022年1月7日增补

多个with的写法是以逗号分隔,第一个有with,其后都没有。

例子SQL:

with t1 as (select * from emp7 where id=1),
     t2 as (select * from emp7 where id=2)
select * from t1,t2

执行结果:

SQL> with t1 as (select * from emp7 where id=1),
  2       t2 as (select * from emp7 where id=2)
  3  select * from t1,t2
  4  ;

        ID NAME                         ID NAME
---------- -------------------- ---------- --------------------
         1 Andy                          2 Bill

END

posted @   逆火狂飙  阅读(1068)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-10-05 [MyBatis]完整MyBatis CRUD工程
2019-10-05 [log4j]Error:The method getLogger(String) in the type Logger is not applicable for the arguments
2019-10-05 [java]将秒数转化为“天时分秒”的格式(转贴+修改)
2019-10-05 [Java]简单计算下一段Java代码段运行了多少秒
2019-10-05 【log4j】log4j.properties 文件示例
2019-10-05 [MyBatis]最简MyBatis工程
2019-10-05 [Java]给指定时间加上十秒
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示