Как нумеровать уникальные значения в SQL Server - PullRequest
0 голосов
/ 16 мая 2018

У меня есть некоторые данные (без идентификатора), и я хочу выбрать уникальные значения (выбрать идентификатор) и дать им идентификатор (без изменения порядка).кто нибудь знает как это сделать?MS-SQL.

unique data

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Что-то вроде этого должно работать для вас:

create table #temp (rowid int identity, col1 int, col2 varchar(max)...)
insert #temp
select * from your table 
0 голосов
/ 16 мая 2018

Добавьте столбец идентификатора:

alter table ChannelGrName add ID int identity(1,1);

, который заполнит столбец идентификатора упорядоченными числами, начиная с 1 до количества существующих строк.Для будущих вставок столбец идентификатора должен заполняться, начиная с [количество строк + 1] .

Демонстрация SQL Fiddle

0 голосов
/ 16 мая 2018

Я не знаю, что вы подразумеваете под "не изменять порядок", учитывая, что таблицы SQL уже представляют неупорядоченные наборы, поэтому они не имеют порядка. Вы можете назначить число каждому уникальному значению в столбце, используя dense_rank():

select t.*, dense_rank() over (order by data) as data_id
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...