SQL Server,将值插入变量并排序

SQL Server,将值插入变量并排序,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,在向变量插入值后,我需要对查询结果进行排序。 我正在尝试根据“RowId”进行排序,但在我的情况下它无效。 下面是我的问题,我如何才能让它工作? 谢谢 使用“编辑”尝试以下操作: SELECT TOP 1 @NumOfProducts = ROW_NUMBER() OVER(ORDER BY Products.Id), ROW_NUMBER() OVER(ORDER BY Products.Id) AS RowId 或尝试 ORDE

在向变量插入值后,我需要对查询结果进行排序。 我正在尝试根据“RowId”进行排序,但在我的情况下它无效。
下面是我的问题,我如何才能让它工作? 谢谢

使用“编辑”尝试以下操作:

SELECT TOP 1 @NumOfProducts = ROW_NUMBER() OVER(ORDER BY Products.Id),
                              ROW_NUMBER() OVER(ORDER BY Products.Id) AS RowId 
或尝试

ORDER BY ROW_NUMBER() OVER(ORDER BY Products.Id)
我得测试一下,但我觉得两者都可以


问题是rowid不在任何groupby项中


您可以按
Products.id
订购。如果
rowid
对于每一行都是相同的,您可以通过
max(rowid)
min(rowid)
订购,或将
rowid
添加到group by语句中。

是否尝试查找最近插入的行的ID?你想要

 SELECT Scope_Identity()
编辑 *我正在尝试获取row_NUMBER()的最大行id*

将您的查询包装到

 SELECT  @NumOfProducts = Max(RowID) FROM
 ( [your query here] ) v

或者,a
选择COUNT
。。。query可能会提供答案

对不起,我忘记添加@numofroducts,这导致了所有问题。不,我正在尝试获取row_NUMBER()的最大行id。问题是,我无法在尝试将值放入@NumOfProducts时进行排序。抱歉,我忘记添加@NumOfProducts,这导致了所有问题。这是无效的SQL,您无法为变量赋值并为其指定别名。但是我想你可以把
行号()放在(orderbyproducts.Id)
后面的
orderby
 SELECT  @NumOfProducts = Max(RowID) FROM
 ( [your query here] ) v