기본적으로 Access에서 ROW_NUMBER()를 모방하려고합니다. 불행히도 Access는 이런 종류의 일을 수행하는 데 좋은 엔진이 아닙니다. 그것은 백 개 정도의 기록 후에 개를 느리게 만듭니다. 말했다와
이 여기에 당신이 할 수있는 작업은 다음과 같습니다 (내 특정 테이블에서)이없는 결과가 발생합니다
SELECT t1.ID, t1.SomeText, t1.SomeDate,
(
SELECT COUNT(*) + 1
FROM Table1 AS t2
WHERE t1.SomeText > t2.SomeText
) as RowNumber
FROM Table1 t1
ORDER BY t1.SomeText
가 :
ID | SomeText | SomeDate | RowNumber
10 | 4NGJN | 1/20/2010 | 1
11 | ABH | 1/20/2010 | 2
2 | asldkfj | 1/20/2010 | 3
1 | asldkfjaslgh | 1/20/2010 | 4
7 | ewoiuhdkjnlbkjbn | 1/20/2010 | 5
4 | oihkjldhnlkmdfn,mn | 1/20/2010 | 6
3 | oihoih | 1/20/2010 | 7
5 | qwwern | 1/20/2010 | 8
8 | SKN | 1/20/2010 | 9
9 | WEOIN | 1/20/2010 | 10
6 | wetrhn | 1/20/2010 | 11
12 | XDNKJ | 1/20/2010 | 12
내가 Access에서 저장된 쿼리를 만들 것 (A SQL Server에서보기) 다음 응용 프로그램에 다음과 같은 쿼리를 작성하십시오.
SELECT ID, SomeText, SomeDate, RowNumber
FROM myView
WHERE RowNumber > 5
AND RowNumber < 11
물론 "5"& "11"클라이언트 응용 프로그램에서 전달하면 현재 사용중인 특정 페이지를 기반으로합니다. (아마 50 및 100 또는 당신을 위해 뭔가 될 것입니다).
에서 수 행하는 것보다 더 빠른 것? 그것은 나에게 맞는 해결책처럼 들렸다! – Birger
TOP는 데이터 세트의 시작 또는 끝을 기준으로 그룹을 제공합니다. 주어진 오프셋에서 슬라이스를 제공하지는 않습니다. 아래 네이선의 대답은 그것을 설명합니다. – Jotham
Jet/ACE에는 LIMIT 키워드가 없으므로 TOP 만 수행 할 수 있으며 그렇다고 매우 비효율적이며 SQL을 구성하는 데 절차 코드가 필요합니다. –