Select id, name, ROW_NUMBER() OVER (ORDER BY id asc) as 'RowNo'
from customers
where RowNo between 50 AND 60
50-60 사이의 행 서브 세트를 선택하려고합니다. 문제는 'RowNo'가 잘못된 열 이름입니다.Row_Number()를 사용하여 행의 서브 세트 선택
;WITH PaginatingData AS
(
Select id, name, ROW_NUMBER() OVER (ORDER BY id asc) as 'RowNo'
from customers
)
SELECT *
FROM PaginatingData
where RowNo between 50 AND 60
사용하십시오 CTE (-에 "인라인보기"일종의 공통 테이블 식) :
당신은 같은 것을 할 필요가 2008 R2
별칭에''구분 기호 ''를 사용하지 마십시오. 이 구문은 표준이 아니며 'SELECT'a ''b ''와 같이 매우 혼란스럽고 SQL Server에서는 사용되지 않습니다. '[대괄호]'(표준이 아님) 나''큰 따옴표 ''(표준)를 사용하거나 구분 기호를 사용하지 마십시오. 더 많은 정보와 많은 토론을 보려면 http://sqlblog.com/blogs/aaron_bertrand/archive/2012/01/23/bad-habits-to-kick-using-as-instead-of-for-column-aliases를 참조하십시오. aspx –
PS 토론은 당신이 사용해야하는 것에 관한 것입니다. 작은 따옴표 *를 사용해서는 안된다는 주장은 거의 없습니다. –
@Aaron : thnx,이 버전이 더 이상 사용되지 않거나 최신 버전에서는 허용되지 않았는지 확실하지 않았습니다. –