2010-12-31 2 views
0
With Results as 
(
    SELECT Top(100) percent ROW_NUMBER() over (Order by (select 1)) as RowNumber, 
    Ad.Date, Title 
    FROM Ad inner join Job on Ad.Id = Job.AdId 
    Order by 
    case When @sortCol='Date' and @sortDir='ASC' Then Date End ASC, 
    case When @sortCol='Date' and @sortDir='DESC' Then Date End DESC 
) 
Select * from Results 
Where RowNumber BETWEEN @FirstRow AND @LastRow 
END 

@sortDir 및 @sortCol에 전달되는 내용은 작동하지 않습니다. 내가 잘못하고있는 것은 무엇입니까?주문 작동하지 않음

+2

응답 할 때 도움이 필요하면 질문을 삭제하지 마십시오 .. http://stackoverflow.com/questions/4568723/invalid-column-name/4568788#4568788 – bAN

+0

처음 생각 하다니 ~ 귀하의 주문 by 절이 "SELECT * FROM Results"쿼리에 있습니까? –

+0

예 시도했는데 Row_Number가 순서를 기반으로하므로 페이징이 예상대로 작동하지 않습니다. – coure2011

답변

3

절을 Row_Number 인수 목록으로 이동하면 문제가 해결 될 수 있습니다.

Order bywith 절은 허용되지 않습니다.

+0

결과의 총 개수를 출력 매개 변수로 가져 오는 방법은 무엇입니까? – coure2011

+0

추가 선택 @count = count (*) :-(제외하고 내 마음에 아무것도 –