我想创建一个Select
语句,按照排序对列进行排序。
目前,该表格的顺序如下:
ITEM_Description1
ITEM_Description2
ITEM_StockingType
ITEM_RevisionNumber
我不希望结果以任何方式数字化,也不希望取决于VariableID
数字,但是ROW_Number()
,我必须选择一些东西。有谁知道我怎么能得到这样的结果?
Row| VariableName
---------------------
1 | ITEM_Description1
2 | ITEM_Description2
3 | ITEM_StockingType
4 | ITEM_RevisionNumber
我的示例代码如下所示。
SELECT
VariableName,
ROW_NUMBER() OVER (ORDER BY VariableID) AS RowNumber
FROM
SeanVault.dbo.TempVarIDs
答案 0 :(得分:4)
使用ORDER BY(SELECT NULL)将为您提供所需的结果。
选择
变量名,
ROW_NUMBER()OVER(ORDER BY(SELECT NULL))AS rownum
从
SeanVault.dbo.TempVarIDs
答案 1 :(得分:1)
你的问题似乎与这句话有关:
目前,该表格的顺序如下:
不,您的表格未被隐式订购!!
虽然看起来像这样......
强制执行结果集排序顺序的唯一方法是在ORDER BY
最外面的SELECT
- 子句。
如果要维护插入的排序顺序,可以使用
ID INT IDENTITY
这样的列(会自动增加序列计数器)在插入时使用GETDATE()
将无法解决此问题,因为多行插入可能会获得相同的DateTime值。
您当然不必在输出中显示此内容......
答案 2 :(得分:0)
你的桌子没有固有的顺序。即使您连续100次获得该订单也不能保证在101次时该订单。
您可以向表格添加标识列。