Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Удалить дубликаты из таблицы

$
0
0
Есть такой запрос

delete from (select *, ROW_NUMBER() OVER (PARTITION BY name, age order by age) as rn from [user])
where rn >1


он не работает так как
автор
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '('.
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'where'.


но если написать

with cte as(select *, ROW_NUMBER() OVER (PARTITION BY name, age order by age) as rn from [user])
delete from cte
where rn >1

всё работает корректно.

я думал, что with это просто именованный подзапрос.
Какая разница использую я алиас или сам подзапрос

Viewing all articles
Browse latest Browse all 7251

Trending Articles