Как добавить отдельное значение для повторяющихся столбцов в SQL Server? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть таблица с CountryName и id.

Например.

id   CountryName 
-----------------
1    Afghanistan
2    Afghanistan
3    Afghanistan 
4    Albania     
5    Albania     
6    Albania     
7    Albania   

Я хочу добавить новый столбец 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

У меня есть много стран, которые продолжают повторяться, и я хочу добавить к ним CountryID, чтобы было легчеделать объединения.Возможно ли это сделать с помощью сценария T-Sql?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Итак, я понимаю, что вы хотите добавить эти CountryID в таблицу.Следовательно, вам понадобится оператор обновления для обновления столбца CountryID.

Расширение Ответ Джона Каппеллетти об использовании Dence_Rank, я думаю, что следующий оператор обновления должен работать.

UPDATE t1 SET t1.CountryID = t2.CountryID
    FROM [Your table] t1
    JOIN (Select id 
          ,CountryName
          ,CountryID  = dense_rank() over (order by CountryName)
    From   [Your table]) t2 ON t1.CountryName = t2.CountryName
0 голосов
/ 17 сентября 2018

Возможно, другой вариант, используя DENSE_RANK():

Select id 
      ,CountryName
      ,CountryID  = dense_rank() over (order by CountryName)
From   YourTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...