我在找一些像這樣的expresion(使用SQL Server 2008)返回行的特定範圍之間,有一個select語句
SELECT TOP 10 columName FROM tableName
但不是我需要在10和20之間的值我想知道是否有隻使用一個SELECT語句的方法。
例如,這是沒有用的:
SELECT columName FROM
(SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum, * FROM tableName) AS alias
WHERE RowNum BETWEEN 10 AND 20
因爲選擇括號內已經返回所有的結果,我希望避免這種情況,由於性能。
升級到SQL Server 2012通常不是「按住你的手指」選項。而且我認爲*在早期版本的SQL Server中有更好的答案。例如,爲什麼不在應用行號時只檢索* key *值,然後將該輸出(它將會*很* skinner)加入表中? –
@AaronBertrand,你是對的。我完全同意升級並不容易,但是如果OP使用這個聲明很多並且真的關心性能,這是他/她可以考慮的。 – RAS