我认为sql server中的每一行都有一个唯一的编号。如何在SQL查询结果中包含它?
答案 0 :(得分:29)
如果您在运行查询时引用Management Studio提供的行号,则无法获取该行号,因为它实际上并不存在。 Management Studio即时生成。但是,如果您使用的是SQL Server 2005或更高版本,则可以使用ROW_NUMBER排名功能重新创建序号。请注意,除非包含Order By语句,否则不应假设数据库将按指定顺序返回行。所以您的查询可能如下所示:
Select ....
, Row_Number() Over ( Order By T.SomeColumn ) As Num
From Table As T
Order By T.SomeColumn
Over子句中的Order By用于确定创建序列号的顺序。查询末尾的Order By子句用于确定输出中行的顺序(即序列号的顺序和行的顺序可以不同)。
答案 1 :(得分:3)
结果中的唯一性始终是您的主键。
但是有一些名为ROW_NUMBER的函数可以用作特定结果中行的唯一标识。
SELECT zip,city,state,latitude,longitude,timezone,dst,
ROW_NUMBER() OVER (ORDER BY zip) AS num
FROM dbo.zipcode;
答案 2 :(得分:-1)
我认为你应该使用这个....
DCount('Column_Name','Table_Name','Column_Name <= ' & [Column_Name]) as SR