阅读更多
Friday February 17, 2006 - 05:24pm (CST)
1。decode()不仅仅针对固定值
(case when (b.aggregateno is null or b.aggregateno='') then customerid else b.aggregateno end)
也可以写成
decode(aggregateno,null,customerid,'',customerid,aggregateno)
decode里面放的是字段,而不是固定值,case when的语法实在难以写正确。而sql又没有发现IDE,程序员离开IDE还有点难办,不过做IDE的人却不挣钱,Borland都要卖掉他们的IDE 部门了,不过今天公司竟然收到了Borland的邮件,说我们有人使用非正版的Jbuilder,唉....竟然还有人喜欢用Jbuilder,不是说他不好,而是他的商业版本也太没性价比了。
2。取前10条记录放入临时表的写法
本来这是一个简单问题,用select first 10 * from table1 into temp temptable 就解决了,但是into temp table或者insert into 的时候都不能使用first,Image。这种设计不知道出于什么考虑
/*先从所有记录中sum出总和,并且按中和排序放入临时表中,这样插入的记录rowid在非异常情况下是连续的,并且按sum值排序*/
select T1.aggregateno aggregateno, sum(T1.balance) sumbalance
from aggr_n T1
group by T1.aggregateno
order by 2 desc, 1 asc
into temp temptop1
/*取前10 的记录放入临时表,条件是rowid小于min(rowid)+10*/
select aggregateno,sumbalance from temptop1
where rowid < (select min(rowid)+10 from temptop1)
order by 2 desc into temp temptop10