1

順序付けられた #Temp テーブルを作成しようとしています:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY [Quality] DESC) AS RowNumber, ImageID, Quality, Border, IsBest
  FROM [CatalogImages].[dbo].[Images] ORDER BY Quality)

SELECT *
  INTO #Temp
  FROM Ordered ;

 SELECT * FROM #Temp ;

しかし、私はエラーが発生します:

メッセージ 1033、レベル 15、状態 1、行 82
ORDER BY 句は、TOP または FOR XML も指定されていない限り、ビュー、インライン関数、派生テーブル、サブクエリ、および共通テーブル式では無効です。

順序付けられた一時テーブルを作成するには?

4

1 に答える 1

1

エラーは、許可されていない Common Table Expression 内で Order By を実行しようとしているためです。

あなたが投稿した内容から、あなたの CTE は必須ではないようです。これを行うことができます:

SELECT ROW_NUMBER() OVER (ORDER BY [Quality] DESC) AS RowNumber, ImageID, Quality, Border, IsBest 
INTO #Temp 
ORDER BY Quality; 

SELECT * 
FROM #Temp 
ORDER BY Quality; 

(これは、一時テーブルが必要であることも示唆していません...)

于 2012-07-31T20:41:15.733 に答える