1

PHP では、(LIMIT) 型の機能が必要な SQL Server クエリを実行しています。TOP は通常、LIMIT (MySQL 構文) の代わりに SQL Server で使用されることを既に知っています。ただし、TOP では、LIMIT のように「オフセット」を設定することはできません。私のクエリでは、「オフセット」と「行数」を動的にする必要があります。例:

LIMIT $startRow, $maxRow

何か考えや提案はありますか?

4

1 に答える 1

1

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;
于 2012-04-30T16:52:08.817 に答える