2

SQL Server 2005には、次のようなSQLステートメントがあります。

SELECT * INTO #TempTable FROM FirstTable WHERE <complex where clause>

私が本当に望んでいるのは、結果の一時テーブルに、where句がレコードを返した順序で1から上に数える整数フィールドである追加のフィールドを持たせることです。

これは可能ですか?

(基本的に、最初のselectステートメントから返されたレコードのサブセットを「45行目から179行目」の行に沿って返すことができるようにしたいと思います。)

4

1 に答える 1

5

Row_Numberを使用して、これを試してください。

-- insert into temp table
SELECT *, 
  ROW_NUMBER() OVER (ORDER BY SortColumn) AS SortColumn INTO #TempTable 
FROM FirstTable 
WHERE <complex where clause>

-- check the results and drop the table
SELECT * FROM #TempTable WHERE SortColumn BETWEEN 45 AND 179 ORDER BY SortColumn
DROP TABLE  #TempTable

明らかに、あなたSortColumnはあなたの場合に意味のあるものと交換する必要があります


編集:

ページングを実行しようとしているだけの場合は、その例がたくさんあります。

于 2009-01-27T19:32:50.470 に答える