В PHP я выполняю запрос SQL Server, где мне нужно (LIMIT). Я уже знаю, что TOP обычно используется в SQL Server вместо LIMIT (который является синтаксисом MySQL). Тем не менее, TOP не позволяет вам устанавливать «смещение», как делает LIMIT. В моем запросе мне нужно, чтобы «смещение» и «количество строк» были динамическими. Пример:
LIMIT $startRow, $maxRow
Любая мысль или предложения?
Sql Server 2005 не имеет синтаксиса ограничений, который у вас выше, который не был добавлен до 2012 года. Вам нужно будет использовать предложение OVER и общие табличные выражения.
Пример из SqlTeam
WITH Members AS ( SELECT M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY, ROW_NUMBER() OVER (ORDER BY M_POSTS DESC) AS RowNumber FROM dbo.FORUM_MEMBERS ) SELECT RowNumber, M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY FROM Members WHERE RowNumber BETWEEN 1 AND 20 ORDER BY RowNumber ASC;