17
ฉันจะ จำกัด จำนวนแถวที่ส่งคืนโดยเคียวรี Oracle หลังจากสั่งซื้อได้อย่างไร?
มีวิธีที่จะทำให้OracleแบบสอบถามทำงานเหมือนมีMySQL limitประโยคหรือไม่? ในMySQLฉันสามารถทำสิ่งนี้: select * from sometable order by name limit 20,10 เพื่อรับแถวที่ 21 ถึงแถวที่ 30 (ข้ามแถวแรก 20 ให้อีก 10 แถวถัดไป) แถวจะถูกเลือกหลังแถวorder byดังนั้นจึงเริ่มต้นด้วยชื่อที่ 20 ตามตัวอักษร ในOracleสิ่งเดียวที่คนพูดถึงคือrownumคอลัมน์หลอก แต่มันถูกประเมินมาก่อน order byซึ่งหมายความว่า: select * from sometable where rownum <= 10 order by name จะส่งกลับชุดสุ่มสิบแถวเรียงตามชื่อซึ่งมักจะไม่ใช่สิ่งที่ฉันต้องการ นอกจากนี้ยังไม่อนุญาตให้ระบุการชดเชย
1032
sql
oracle
pagination
sql-limit