Próbowałem trochę zrozumieć, jak zaimplementować niestandardowe stronicowanie w SQL, na przykład czytając artykuły takie jak ten .
Mam następujące zapytanie, które działa idealnie. Ale chciałbym zaimplementować stronicowanie z tym.
SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate
from dbForumEntry
group by PostId ) SubQueryAlias
order by LastDate desc
Czego ja chcę
Mam posty na forum z powiązanymi wpisami. Chcę otrzymywać posty z ostatnio dodanymi wpisami, aby móc wybrać ostatnio omawiane posty.
Teraz chcę mieć możliwość uzyskania „10 do 20 ostatnio aktywnych postów” zamiast „10 najlepszych”.
Czego próbowałem
Próbowałem zaimplementować funkcje WIERSZ, tak jak w artykule, ale tak naprawdę bez powodzenia.
Jakieś pomysły, jak to wdrożyć?
źródło
WHERE RowNumber >= @Start AND RowNumber < @End
otrzymać pierwsze 1000 wierszy, jeśli@Start
wynosi 0 i@End
1000?Aby to zrobić w SQL Server, musisz uporządkować zapytanie według kolumny, aby móc określić żądane wiersze.
Przykład:
Nie możesz w tym celu używać słowa kluczowego „TOP”.
Możesz dowiedzieć się więcej tutaj: https://technet.microsoft.com/pt-br/library/gg699618%28v=sql.110%29.aspx
źródło
użyj tego na końcu wybranej składni. =)
źródło
SQL 2008
Odpowiedź Radima Köhlera działa, ale tutaj jest krótsza wersja:
Źródło: https://forums.asp.net/post/4033909.aspx
źródło
Możesz użyć zagnieżdżonego zapytania do paginacji w następujący sposób:
Paging od 4 Row do 8 Row, gdzie CustomerId jest kluczem podstawowym .
źródło