我有这个表MSSQL:
if ($sum == 1) echo "Bad"
EntityNo应该是唯一的,但它不是主键。如何从此表中删除其中一个重复条目?感谢。
答案 0 :(得分:6)
使用此查询
DELETE a FROM (
SELECT row_number() over(partition by EntityNo order by EntityNo) as RowNo
FROM Entity
) AS a WHERE RowNo > 1
答案 1 :(得分:1)
你可以在oracle中使用rowid
这样做:
DELETE FROM
table_name A
WHERE
a.rowid >
ANY (
SELECT
B.rowid
FROM
table_name B
WHERE
A.col1 = B.col1
AND
A.col2 = B.col2
);
sql server
中的行ID的等效值为%%physloc%%
,不受支持。但是您也可以将自己的临时rowid添加到此表中,并为此列提供顺序值并使用它。