with cte as (select id,rn2=Row_number() over(partition by id order by id) from dbo.ab1 ) delete from dbo.ab1 where rn2>1;
with cte as (select id,rn2=Row_number() over(partition by id order by id) from dbo.ab1 ) delete from dbo.ab1 where rn2>1;
以上查询抛出无效的列名 'rn2'。 SQL 服务器出错。任何人都可以帮我解决这个问题。我需要从没有主键的 table 中删除整个重复记录。
with cte as (
select id,rn2=Row_number() over(partition by id order by id)
from dbo.ab1
) delete from cte where rn2>1;
这是有效的。只需在删除语句中用 cte 更改 table 名称即可。
以上查询抛出无效的列名 'rn2'。 SQL 服务器出错。任何人都可以帮我解决这个问题。我需要从没有主键的 table 中删除整个重复记录。
with cte as (
select id,rn2=Row_number() over(partition by id order by id)
from dbo.ab1
) delete from cte where rn2>1;
这是有效的。只需在删除语句中用 cte 更改 table 名称即可。