我對Postgres數據庫相當陌生。我有一個查詢:如何在PostgreSQL的where子句中寫rownum
select offer_id, offer_date
from CMS_OFFER
where ROWNUM < 300
它在Oracle中執行但在Postgres它不會被執行。 我也嘗試了row_number()。它無法執行。請幫助我:我該如何實現這一目標?
我對Postgres數據庫相當陌生。我有一個查詢:如何在PostgreSQL的where子句中寫rownum
select offer_id, offer_date
from CMS_OFFER
where ROWNUM < 300
它在Oracle中執行但在Postgres它不會被執行。 我也嘗試了row_number()。它無法執行。請幫助我:我該如何實現這一目標?
select offer_id,offer_date from CMS_OFFER limit 299
沒有實際情況的'where'將是一個語法錯誤。 – 2012-02-15 18:04:19
和300是一個太多 – Thilo 2012-02-16 03:47:25
哦。固定).... – 2012-02-16 06:42:24
雖然不完全一樣,Oracle的ROWNUM,PostgreSQL有LIMIT:
不同的是,ROWNUM是分揀後分類之前應用和LIMIT(這通常是你想要什麼反正) 。
啊 - 使用專有擴展到SQL的(dis)優勢。當您切換DBMS時,它們不會隨您移動。 Oracle的ROWNUM是特有的,並且不一定在其他地方可用,除非'別處'碰巧模仿了Oracle。 – 2012-02-15 06:10:41
不是說有一種非專有的方式來做到這一點...... – Thilo 2012-02-15 06:11:53
@Thilo:根據PostgreSQL文檔SQL:2008引入了「FETCH FIRST n ROWS ONLY」語法。所以有一個標準的方法。但我懷疑Oracle是否支持它。 – 2012-02-15 18:18:27