答一网友csdn中一问题:

/*

看看下面的SQL怎么写
进入用户个人空间
加为好友
发送私信
在线聊天
  • a_north_wolf
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
  • 结帖率:

 

发表于:2008-12-18 13:14:18 楼主
有如下表:
time_id  next_time_id  next_money
200801  200805        100
200802 
200803 
200804 
200805  200810        200
200806
200807
现要求写一SQL语句更新上表,期望得到如下结果:
time_id  next_time_id  next_money
200801  200805        100
200802  200805        100
200803  200805        100
200804  200805        100
200805  200810        200
200806  200810        200
200807  200810        200

*/

 

 

--data:
create table sa
(
   s01   nvarchar2(
20)
   ,s02   nvarchar2(
10)
   ,s03  
int
)

insert into sa values('200801','200805',100);
insert into sa values('200802','',0);
insert into sa values('200803','',0);
insert into sa values('200804','',0); 
insert into sa values('200805','200810',200);
insert into sa values('200806','',0);
insert into sa values('200807','',0);
insert into sa values('200810','200812',300);
insert into sa values('200811','',0);
commit;

--sql:
select sa.s01,min(sb.s02),min(sb.s03) from
sa,
(
select s01,s02,s03  from sa
where s02 is not null
   
and s01<s02 ) sb
   
where sa.s01<sb.s02
group by sa.s01

--result:
200801    200805    100
200802    200805    100
200803    200805    100
200804    200805    100
200805    200810    200
200806    200810    200
200807    200810    200
200810    200812    300
200811    200812    300

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值