2013-11-15 53 views
-1

選擇最後插入5行我有沒有索引行的表,也沒有特定的列...DB2 - 從表

比方說,「城市,PERSONNAME,人物」。我需要得到最後 5人插入該表...

我怎麼能做到這一點,在DB2?

我試圖

select * from PEOPLE fetch first 5 rows only 

這項工作完美......但不知道如何與最後的行做到這一點....

+0

只是好奇,爲什麼你會將一個人的年齡存儲在數據庫中?儲存生日不會更有成效嗎? –

+0

@ t-clausen.dk我不存儲年齡,這個例子只是理論上的... – Serge

+0

如果是理論上的,那麼爲什麼不添加一個唯一的標識符來滿足您的需求? – WarrenT

回答

4

你不能選擇最後5行插入時,數據庫不會跟蹤這一點。您需要某種自動增加的ID或時間戳,並按該列降序排列。

+0

那麼,數據庫如何保持FIRST插入行的軌道,但不保留關於最後插入行的軌道? – Serge

+0

@Serge數據庫不跟蹤第一個插入的行eather。當您編寫讀取前5行時,數據庫將返回遇到的前5行。不保證它是插入的前5個 –

+1

@Serge由於您使用的是DB2,它可能看起來像前幾行的「順序」,因爲您正在查看的字段可能是(或* *)的一部分, [「集羣索引」](http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0061098.html),它定義行如何物理排序。如果DBA運行['REORG'](http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0001966.html ),那麼它可能會「按順序」,但這不是**保證**,除非你包含一個'ORDER BY'。 – bhamby