-
2008-08-13 04:42:55 / Oracle开发
原贴见:http://www.itpub.net/viewthread.php?tid=620427&extra=page%3D1%26amp%3Bfilter%3Ddigest里面提到了用SQL寻找最省钱的飞行路线。建表及测试数据:Create table airports(code VARCHAR2(3) constraint airports_pk primary key,description varchar2(200));insert into airports values ('LHR','London Heathrow, UK');insert into airports values ('JFK','New York-Kennedy, USA');insert into airports values ('GRU','Sao Paulo, Brazil');create table fares(depart VARC
查看(230)
评论(7)
-
2008-08-12 08:47:03 / Oracle开发
http://www.itpub.net/thread-1034898-1-1.html本来我也看不懂楼主在问什么,后来他作了解释,也有兄弟给了PL/SQL的答案,我没事找抽又用SQL做了一遍。这题目妙就妙在初看并不难,细看却不简单,呵呵......最大的挑战在于找出最佳解(分割的次数最少),到现在我也不知道答案是什么?请各位爱好SQL的同学们前往攻关!
查看(172)
评论(4)
-
2008-07-13 02:54:52 / Oracle开发
我看到小马哥贴的一个有趣的题目:http://www.itpub.net/viewthread.php?tid=1020712&pid=10931890&page=1&extra=#pid10931890思考了一下,觉得关键在于找到一个聚合求积的办法。SUM()是个求和的聚合函数,如何求积呢?我们可以想办法把乘法变成加法:A*B*C = 10^(LOG(A)+LOG(B)+LOG(C))CREATE TABLE TEST AS SELECT LEVEL AS L FROM DUAL CONNECT BY LEVEL
查看(439)
评论(11)
-
2008-07-12 03:40:35 / Oracle开发
1.既然NULL是可以进复合索引的,在我们需要对NULL进行索引时,就可以构造一个“伪复合索引”:CREATE INDEX my_index ON my_table(my_column,0);后面这个零就是加入的伪列。这样以后在有 my_column IS NULL 的条件就可以利用索引了(当然最终使用与否还得由CBO决定)。2.不想索引的行,即使不是NULL, 也可用函数把它剔除。假设有status_id列,里面有0:未处理,1:已处理 两种状态,我们关心的仅仅是0的行,处理完就会改成1. 这样表中0的行仅仅是少数,大部分是1的行,数据量多了BTREE索引的维护就有开销。这时可以建
查看(573)
评论(18)