将命令列添加到SQL Server的查询结果中

时间:2014-11-12 05:18:37

标签: sql sql-server tsql

我有一张名为Table1的表格,如下所示:

id|val1|val2|FKId
------------------
 1|val |val | 123
 2|val |val | 123
 3|val |val | 234
 4|val |val | 345

我正在使用:

SELECT * FROM Table1

我需要在此查询的结果中添加一个列,该列将包含FKId每行的订单号。我需要的结果如下:

id|val1|val2|FKId |Order
------------------------
 1|val |val | 123 | 1
 2|val |val | 123 | 1
 3|val |val | 234 | 2
 4|val |val | 345 | 3   

也许SQL Server中有一些功能可以解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用排名功能Dense_Rank(),您可以获得所需的订单。要详细了解Dense_rank check here

SELECT *,
       Dense_Rank()
         OVER (
           PARTITiON BY val1
           ORDER BY fkid) [Order]
FROM   tablename