Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server创建有序临时表_Sql_Sql Server_Tsql - Fatal编程技术网

SQL Server创建有序临时表

SQL Server创建有序临时表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我尝试创建有序的临时表: 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 ;

我尝试创建有序的临时表:

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 ;
但我得到了一个错误:

Msg 1033,15级,状态1,第82行 ORDER BY子句无效 在视图、内联函数、派生表、子查询和公共 表表达式,除非还指定了TOP或FOR XML


如何创建有序临时表?

错误是因为您试图在公共表表达式中进行排序,这是不允许的

仅从您发布的内容来看,似乎不需要您的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; 

这也不意味着需要临时表…

错误是因为您试图在公共表表达式中进行排序,这是不允许的

仅从您发布的内容来看,似乎不需要您的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; 

这也不意味着需要临时表…

用谷歌搜索消息。这是一个众所周知的错误。哦,谢谢,我找到了一个解决方案作为旁注:你不能有一个有序的表-临时或不。在SQL中从表中选择时,除非明确指定ORDER BY,否则消息中没有保证的ORDER。这是一个众所周知的错误。哦,谢谢,我找到了一个解决方案作为旁注:你不能有一个有序的表-临时或不。当您在SQL中从表中选择时,除非您显式指定ORDER BY,否则没有保证的顺序