0

有可能吗?我有一个两行一列的表。两行都有相同的值。没有主键。我们可以删除 1 行吗?

4

3 回答 3

1

这是使用ROW_NUMBER()和 的一种方法common table expression

with cte as (
  select *, 
    row_number() over (partition by id order by id) rn 
  from yourtable)
delete from cte
where rn = 1;
于 2013-10-06T23:30:48.157 回答
0

您可以花哨并使用 cte 删除一个,但如果它们是相同的值(并且该表与您描述的一样简单),您也可以删除两者并添加一个回来。简单得多。

代理键有人吗?

于 2013-10-07T06:44:41.623 回答
0

您可以使用 RANK() 函数执行此操作。

或者您可以使用 TOP 关键字。

于 2013-10-06T23:18:16.543 回答