ฉันพยายามทำสิ่งที่ชอบ:
SELECT * FROM table LIMIT 10,20
หรือ
SELECT * FROM table LIMIT 10 OFFSET 10
แต่ใช้ SQL Server
ทางออกเดียวที่ฉันค้นพบดูเหมือนว่าเป็น overkill
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
ฉันก็ค้นพบ :
SELECT TOP 10 * FROM stuff;
... แต่ไม่ใช่สิ่งที่ฉันต้องการเพราะฉันไม่สามารถระบุขีด จำกัด เริ่มต้นได้
มีวิธีอื่นอีกไหมที่ฉันจะทำอย่างนั้น?
นอกจากนี้อยากรู้อยากเห็นมีเหตุผลทำไม SQL Server ไม่สนับสนุนLIMIT
ฟังก์ชั่นหรือสิ่งที่คล้ายกัน? ฉันไม่ต้องการที่จะหมายถึง แต่ดูเหมือนว่าสิ่งที่ DBMS ต้องการ ... ถ้าเป็นเช่นนั้นฉันขอโทษที่ไม่รู้เช่นนั้น! ฉันทำงานกับ MySQL และ SQL + เป็นเวลา 5 ปีที่ผ่านมาดังนั้น ...
ROW_NUMBER()
และ จำกัด ด้วยTOP
สำหรับความกว้างของช่วงและWHERE
เงื่อนไขสำหรับขอบเขตของขอบเขตนั้นดีที่สุดที่ฉันสามารถทำได้ ฉันได้สังเกตเห็นยังผลการดำเนินงานที่ดีมากถ้าTOP
ข้อใช้ตัวอักษรแทนของตัวแปร