Ho cercato di capire un po 'come implementare il paging personalizzato in SQL, ad esempio leggendo articles like this one.Implementare la funzionalità di paging (skip/take) con questa query
Ho la seguente query, che funziona perfettamente. Ma vorrei implementare il paging con questo.
SELECT TOP x PostId FROM (SELECT PostId, MAX (Datemade) as LastDate
from dbForumEntry
group by PostId) SubQueryAlias
order by LastDate desc
cosa è che voglio
devo post del forum, con voci correlate. Voglio ricevere i post con le ultime voci aggiunte, così posso selezionare i post di recente discussione.
Ora, voglio essere in grado di ottenere i "primi 10 o 20 messaggi attivi di recente", anziché "primi 10".
Che ho io provato
Ho cercato di implementare le funzioni fila come quello in questo articolo, ma in realtà senza fortuna.
Qualche idea su come implementarlo?
Grazie mille! Questa è davvero una buona risposta! Unica domanda su SQL 2008. Voglio che l'ORDER BY avvenga prima del WHERE, poiché al momento selezionerà il sottoinsieme, ma vogliamo selezionare qualcosa dell'intero set ... Qualche idea? :) Ancora una volta, grazie –
Se ho capito bene, ti piacerebbe ordinare per LastDate, giusto? quindi possiamo modificare la clausola OVER() in questo modo: ROW_NUMBER() OVER (ORDER BY ** MAX (Datemade) desc **). * E rimuovi l'ultimo ORDER BY PostId *. Ora il CTE dovrebbe essere ordinato 'prima' se necessario. corretta? –
Grazie a questo, una nota sull'esempio del 2012, l'ordine per è obbligatorio, stavo provando questo senza ordine per clausola e ho ricevuto l'errore "sintassi errata" non avevo idea di cosa non andava fino a quando non osservavo la sintassi MSDN e ho imparato che l'ordine è obbligatorio. – Esen