2

配置されている場所に応じて、クエリから特定の SQL 結果を取得しようとしています。たとえば、このコードを検討してください。

SELECT * FROM Product ORDER BY id asc

少なくとも 100 件程度の結果が返される可能性があります。

問題は、その最初の 1 から 10 の結果を取得するにはどうすればよいか、そして別の別の別のクエリで、11 から 20 の結果を取得する方法、または 51 から 60 の位置にある結果を取得する方法です。そのクエリ?

4

2 に答える 2

2

CTE を使用して行番号を取得し、行の列でクエリを実行します

with your_query as(
   SELECT ROW_NUMBER() OVER(ORDER BY ID ASC) AS Row, *
   FROM Product 
)
select * from your_query
where Row >=5 and Row<=10
于 2012-04-18T08:43:41.177 に答える
0

いくつかの方法があります。ROW_NUMBERを使用した1つのアプローチを次に示します。

DECLARE @StartRow INTEGER = 11
DECLARE @EndRow INTEGER = 20

;WITH Data AS
(
    SELECT TOP(@EndRow) ROW_NUMBER() OVER (ORDER BY id) AS RowNo, *
    FROM Product     
)

SELECT *
FROM Data
WHERE RowNo BETWEEN @StartRow AND @EndRow
ORDER BY Id
于 2012-04-18T08:45:34.000 に答える