Wie schreibt rownum in die where-Klausel in PostgreSQL
Ich bin ganz neu mit Postgres-Datenbank. Ich habe eine Abfrage:
select offer_id, offer_date
from CMS_OFFER
where ROWNUM < 300
führt in Oracle, aber in Postgres ist es nicht excuted.
Ich habe versucht, mit row_number() auch. Es ist nicht in der Lage, um Sie auszuführen. Bitte helft mir: wie kann ich das erreichen?
- Ah - die (dis -) Vorteile der Verwendung von proprietären Erweiterungen zu SQL. Sie bewegen sich nicht mit, wenn Sie wechseln DBMS. Die Oracle-ROWNUM eigen ist, und nicht unbedingt woanders, es sei denn, die "irgendwo" passiert, zu emulieren, Oracle.
- Nicht, dass es eine nicht-proprietäre Weise, dies zu tun...
- Nach der PostgreSQL-docs-SQL:2008 eingeführt, das
FETCH FIRST n ROWS ONLY
syntax. So gibt es einen standard-Weg. Aber ich bezweifle, dass Oracle unterstützt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwar nicht genau das gleiche wie die Oracle-ROWNUM, Postgresql hat LIMIT:
Der Unterschied ist, dass ROWNUM angewendet wird vor der Sortierung und BEGRENZUNG Sortierung nach (das ist normalerweise das, was Sie sowieso wollen).