讀取行,我知道在DB2(使用版本9.7)我可以用這個查詢選擇第10行的表:在DB2
SELECT *
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY
但我怎麼能得到的,例如,行11 20? 我不能使用主鍵或ID來幫助我...
在此先感謝!
讀取行,我知道在DB2(使用版本9.7)我可以用這個查詢選擇第10行的表:在DB2
SELECT *
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY
但我怎麼能得到的,例如,行11 20? 我不能使用主鍵或ID來幫助我...
在此先感謝!
這裏有一個簡單的查詢,將得到一張表的行包含國家名稱,縮寫等
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
是必要的,以保證該行編號是的執行之間保持一致 查詢。
是的,它完成了這項工作。謝謝! –
您還可以使用MYSQL兼容性。您只需激活MYS的矢量兼容性,然後在查詢中使用限制和偏移。
db2set DB2_COMPATIBILITY_VECTOR=MYS
db2stop
db2start
一個博客沒有明確的順序寫的DB2專家的優秀文章有沒有保證,你將每次獲取相同的10行。你需要添加'ORDER BY'到你的查詢中。 – mustaccio
你說得對。我剛剛更新了我的查詢。感謝您指出了這一點! –