0

以下に示すようなページネーションの例をたくさん見てきました。ただし、多くの異なるテーブルに対して同じクエリを使用したいと考えています。列名を指定せずにこの手法を使用する方法はありますか。理想的には、* と追加された row_number 列を選択する方法はありますか?

SELECT * FROM (
   SELECT
   ROW_NUMBER() OVER (ORDER BY ColumnName1 ASC) AS rownumber, ColumnName1, ColumnName2
   FROM TableName
   ) AS foo
WHERE rownumber BETWEEN 10 AND 20
4

1 に答える 1

1

分析関数で並べ替える列を指定する必要があります。ただし、それを超えて、次のことができます

SELECT *
  FROM (SELECT t.*,
               row_number() over (order by column1 ASC) rnk
          FROM tableName t)
 WHERE rnk BETWEEN 10 and 20
于 2012-06-15T19:12:13.567 に答える