Удаление одинаковых записей

lex452

у меня есть таблица вида Tableid1 | id21 | 21 | 12 | 32 | 42 | 3данные типа int необходимо удалить одинаковые записи, чтобы получилосьTableid1 | id21 | 21 | 12 | 42 | 3подскажит как это сделать???
4 ответа

lex452

use tempdb
go
create table T(id1 int, id2 int)
insert into T(id1, id2)
select <b>1</b>, <b>2</b> union all
select <b>1</b>, <b>1</b> union all
select <b>2</b>, <b>3</b> union all
select <b>2</b>, <b>4</b> union all
select <b>2</b>, <b>3</b>
go
;with cte as (
 select row_number() over(partition by id1, id2 order by (select <b>1</b>)) rn
 from T
)
delete 
 from cte
 where rn > <b>1</b>
go
select * from T
go
drop table T
go

id1 id2
----------- -----------
<b>1</b> <b>2</b>
<b>1</b> <b>1</b>
<b>2</b> <b>4</b>
<b>2</b> <b>3</b>

(<b>4</b> row(s) affected)


lex452

Паганель,Не совсем понял, для чего создается таблица Т и для чего заносятся туда значения. Таблица уже существует и в ней необходимо удалить одинаковые строки


lex452

lex452,человек за вас сделал то что вы не сделали - создал тестовую табличку и заполнил ее тестовыми даннымирекомендации по оформлению вопросов вы не читали?