我有一张名为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中有一些功能可以解决这个问题?
答案 0 :(得分:2)
使用排名功能Dense_Rank()
,您可以获得所需的订单。要详细了解Dense_rank
check here。
SELECT *,
Dense_Rank()
OVER (
PARTITiON BY val1
ORDER BY fkid) [Order]
FROM tablename