如何为SQL Server中的重复列添加不同的值?

Pet*_*ker 2 sql-server ssms

我有一张桌子CountryName和一张桌子id.

例如.

id   CountryName 
-----------------
1    Afghanistan
2    Afghanistan
3    Afghanistan 
4    Albania     
5    Albania     
6    Albania     
7    Albania   
Run Code Online (Sandbox Code Playgroud)

我想添加一个新列CountryID,其中所有重复CountryName将具有CountryID如下所示的不同.

例如.

id   CountryName   CountryID
-----------------------------    
1    Afghanistan      1
2    Afghanistan      1
3    Afghanistan      1
4    Albania          2
5    Albania          2
6    Albania          2
7    Albania          2
Run Code Online (Sandbox Code Playgroud)

我有很多国家不断重复,我想添加一个CountryID,以便更容易进行连接.是否可以通过T-Sql脚本来完成?

Joh*_*tti 5

也许另一种选择使用DENSE_RANK():

Select id 
      ,CountryName
      ,CountryID  = dense_rank() over (order by CountryName)
From   YourTable
Run Code Online (Sandbox Code Playgroud)