Tôi đang tìm một số expresion như thế này (sử dụng SQL Server 2008)Return hàng giữa một phạm vi cụ thể, với một tuyên bố chọn
SELECT TOP 10 columName FROM tableName
Nhưng thay vì rằng tôi cần các giá trị từ 10 đến 20. Và Tôi tự hỏi nếu có một cách để làm điều đó bằng cách sử dụng chỉ có một câu lệnh SELECT.
Ví dụ này là vô ích:
SELECT columName FROM
(SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum, * FROM tableName) AS alias
WHERE RowNum BETWEEN 10 AND 20
Bởi vì khung bên chọn đã được trả lại tất cả các kết quả, và tôi đang tìm cách để tránh điều đó, do hiệu suất.
Nâng cấp lên SQL Server 2012 thường không phải là tùy chọn "chụp ngón tay của bạn". Và tôi cho rằng có * câu trả lời tốt hơn trong các phiên bản cũ của SQL Server. Ví dụ: tại sao không chỉ lấy các giá trị * khóa * khi áp dụng số hàng, sau đó kết nối đầu ra đó (sẽ có * nhiều * skinner) với bảng? –
@AaronBertrand, bạn nói đúng.Tôi hoàn toàn đồng ý rằng việc nâng cấp không dễ dàng, nhưng trong trường hợp OP đang sử dụng tuyên bố này rất nhiều và thực sự quan tâm đến hiệu suất, đây là điều mà anh/cô ấy có thể cân nhắc. – RAS