SQL Server テーブルのレコード セットを選択したい。
SQL Server では、次のことができます。
select TOP 40,60 *
from sometable
order by name
40行目から60行目を取得したいです。
ありがとうございました。
SQL Server テーブルのレコード セットを選択したい。
SQL Server では、次のことができます。
select TOP 40,60 *
from sometable
order by name
40行目から60行目を取得したいです。
ありがとうございました。
LIMIT は Oracle に存在しますが、引数が異なります。最初の引数は返す最初の行のオフセットを指定し、2 番目の引数は返す行の最大数を指定します。最初の行のオフセットは 0 (1 ではない) です。
SELECT * FROM sometbl Order by name LIMIT 40,100; # Retrieve rows 41-100
または、次のように続行できます。
SELECT * FROM
(
SELECT st.*, Row_Number() OVER (ORDER BY name) rn FROM sometable st
)
WHERE rn BETWEEN 40 AND 60;
私はこのクエリのようにそれをしました
WITH temp AS
( SELECT *, ROW_NUMBER() OVER (ORDER BY name) AS 'RowNumber'
FROM sometable
)
SELECT * FROM temp WHERE RowNumber BETWEEN 40 AND 60
コメントありがとうございます。
関数を使用Row_number
して、必要な行を取得します
WITH tmp AS
(SELECT *, ROW_NUMBER() OVER (ORDER BY a.name) AS 'rn', a.* FROM table a)
SELECT * FROM tmp WHERE rn BETWEEN 40 AND 60