Postgresql'de rownumu simüle etmenin bir yolu var mı?Postgresql içinde Rownum
cevap
Postgresql>
SELECT
row_number() OVER (ORDER BY col1) AS i,
e.col1,
e.col2,
...
FROM ...
Postgresql'in Oracle'ın ROWNUM eşdeğeri yoktur. Çoğu durumda, aynı sonucu, sorgunuzda LIMIT ve OFFSET kullanarak elde edebilirsiniz.
-kabul cevabı ... –
1 ROWNUM ve ROW_NUMBER() AŞIRI() tam olarak aynı –
sadece bir sayı bu deneyin geri gelmek isterseniz 8.4. senin ROWNUM verilerinize bazı sıralı bir anlamı vardır, böylece
create temp sequence temp_seq;
SELECT inline_v1.ROWNUM,inline_v1.c1
FROM
(
select nextval('temp_seq') as ROWNUM, c1
from sometable
)inline_v1;
Sen inline_v1 SQL tarafından bir emri ekleyebilirsiniz.
select nextval('temp_seq') as ROWNUM, c1
from sometable
ORDER BY c1 desc;
En hızlı olmayabilir, ancak gerçekten onlara ihtiyacınız varsa bir seçenek.
Sadece Postgres 9.1 Oracle ROWNUM yakın bir çözüm olarak test ettik:
select row_number() over() as id, t.*
from information_schema.tables t;
Bunu 8.4'te test ettim ve orada da çalışıyor. – Mac
Bunun, dış sorguda bir 'SİPARİŞ BY'e uymayacağını unutmayın. –
Postgresql sınırı vardır.
Oracle'ın kodu:
select *
from
tbl
where rownum <= 1000;
PostgreSQL kodunda aynı:
select *
from
tbl
limit 1000
satır numarasını -1 öyleyse seçim için ofset ile sınır clausule kullanmak u wanna 8 numaralı satır olsun böylece kullanın:
limiti 1 7
ofset Eğer benzersiz bir anahtar varsa,kullanabilir
SELECT t.*, count(*) OVER (ORDER BY k) ROWNUM
FROM yourtable t;
| k | n | rownum |
|---|-------|--------|
| a | TEST1 | 1 |
| b | TEST2 | 2 |
| c | TEST2 | 3 |
| d | TEST4 | 4 |
yanlış gibi görünüyor
- 1. ROWNUM sorgu geri dönüşü
- 2. postgreSQL içinde tablo oluşturma
- 3. PostgreSQL içinde tarih aralığı
- 4. nasıl metin [] postgresql içinde
- 5. postgresql içinde boş satırlar seçin
- 6. Postgresql
- 7. PostgreSQL
- 8. Postgresql
- 9. Postgresql
- 10. PostgreSQL
- 11. Postgresql
- 12. postgresql
- 13. Postgresql içinde iç içe geçmiş işlemler 8.2?
- 14. PostgreSQL 'DEĞİL İÇİNDE' ve alt sorgu
- 15. PostgreSQL içinde SQL sorgusunu optimize edin
- 16. Postgresql içinde bir satırın karma değerini bulma
- 17. Silinen kayıtları PostgreSQL içinde geri yükleme
- 18. Postgresql
- 19. - PostgreSQL
- 20. Postgresql
- 21. PostgreSQL
- 22. PostgreSQL
- 23. PostgreSQL
- 24. PostgreSQL
- 25. PostgreSQL
- 26. PostgreSQL
- 27. PostgreSQL
- 28. Postgresql
- 29. PostgreSQL
- 30. PostgreSQL
dikkat edilmez bkz. Bu, kahinin rolüne benzer, ama biraz farklı. Oracle'ın rownum'u diskten satır okunurken atanır, oysa bu row_number() OVER – Royce
'unuza bağlı olarak atanır Hız farkları hakkında ne var? – Nashev