在DB2

2013-07-25 58 views
12

讀取行,我知道在DB2(使用版本9.7)我可以用這個查詢選擇第10行的表:在DB2

SELECT * 
FROM myTable 
ORDER BY id 
FETCH FIRST 10 ROWS ONLY 

但我怎麼能得到的,例如,行11 20? 我不能使用主鍵或ID來幫助我...

在此先感謝!

+0

一個博客沒有明確的順序寫的DB2專家的優秀文章有沒有保證,你將每次獲取相同的10行。你需要添加'ORDER BY'到你的查詢中。 – mustaccio

+0

你說得對。我剛剛更新了我的查詢。感謝您指出了這一點! –

回答

11

這裏有一個簡單的查詢,將得到一張表的行包含國家名稱,縮寫等

SELECT * 
FROM (
    SELECT stabr, stname, ROW_NUMBER() OVER(ORDER BY stname) AS rownumber 
    FROM states 
    WHERE stcnab = 'US' 
) AS xxx 
WHERE rownumber BETWEEN 11 AND 20 ORDER BY stname 

編輯:ORDER BY是必要的,以保證該行編號是的執行之間保持一致 查詢。

+0

是的,它完成了這項工作。謝謝! –

1

您還可以使用MYSQL兼容性。您只需激活MYS的矢量兼容性,然後在查詢中使用限制和偏移。

db2set DB2_COMPATIBILITY_VECTOR=MYS 
db2stop 
db2start