如何用sql中with语法来虚拟产生表

with --with用来虚拟了两个表
PLAYERS AS (SELECT 'P'||ROWNUM USERNAME FROM ALL_OBJECTS WHERE ROWNUM<=8)
,WEEKS AS (SELECT ROWNUM WEEK FROM ALL_OBJECTS WHERE ROWNUM<=7)
select week,
max(decode(rn,1,username,null)) u1,
max(decode(rn,2,username,null)) u2,
max(decode(rn,3,username,null)) u3,
max(decode(rn,4,username,null)) u4,
max(decode(rn,5,username,null)) u5,
max(decode(rn,6,username,null)) u6,
max(decode(rn,7,username,null)) u7,
max(decode(rn,8,username,null)) u8/*,
username,week,rn*/
from (select username,week,row_number()over (partition by week order by rnd)rn
from (select username,week,dbms_random.random rnd from players,weeks))
group by week

转载于:https://www.cnblogs.com/ebs-blog/archive/2007/10/22/2167356.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值